正文
java自定义生成代码 java 生成代码
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
关于java自定义异常类的一个代码
1 程序中的异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。
Java异常类层次结构图:
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
在程序中使用自定义异常类,大体可分为以下几个步骤。
(1)创建自定义异常类。
(2)在方法中通过throw关键字抛出异常对象。
(3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
(4)在出现异常方法的调用者中捕获并处理异常。
创建自定义异常类
public class MyException extends Exception {
private static final long serialVersionUID = 1L;
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}
使用的话就不演示了 如果你已经研究到了自定义异常 那么我相信你也一定会使用了
如果不会使用 建议学会使用后再来看这篇文章
自由编写一个Java程序(类)
我给你提供一个全面的。
目标:能够掌握一大半java的核心。
问题:看起来代码多,但有助于入门甚至达到高手级别。这个应该算是个精典。
建议:把所有代码复制粘贴。
要求:必须连接数据库。
第一个包bean包中的类:
//这个是自动生成的包,表示本包
package bean;
//映射数据库类,方便管理数据
public class UserBean {
//私有字段
private int userId;//学生id
private String userName;//学生姓名
private String userPass;//学生密码
//封装成公共属性,(把私有字段全选中,右键——源代码——生成get与set方法)
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
//空构造函数
public UserBean()
{
}
//初始化参数时用的构造函数
public UserBean(String name,String pass)
{
this.userName= name;
this.userPass = pass;
}
}
第二个包support包中的类:
package support;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;//导入连接驱动包
import java.sql.*;//导入数据库包
//这个类是用来连接数据库的,在些之前要先加载驱动
public class DBConn {
//连接数据库方法,类型为连接类
public Connection getConn()
{
//定义一个连接对象
Connection conn = null;
try {
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");
//连接数据库
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=myt85","sa","123456");
System.out.println("数据库连接成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
}
return conn;
}
//关闭数据库方法
public void close(Connection conn,PreparedStatement pre)
{
try {
if(pre!=null)
{
pre.close();
}
//后面的判断是判断是否完全关闭
if(conn!=null||!conn.isClosed())
{
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭数据库失败!");
}
}
//重载关闭方法,加入了一个关闭读取流
public void close(Connection conn,PreparedStatement pre,ResultSet rs)
{
try {
if(rs!= null)
{
rs.close();
}
if(pre!=null)
{
pre.close();
}
//后面的判断是判断是否完全关闭
if(conn!=null||!conn.isClosed())
{
conn.close();
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
第三个包dao包中的类:
package dao;
import bean.UserBean;//映射数据库包
import support.DBConn;//连接数据库包
import java.util.*;//集合包
import java.sql.*;//数据库包
//这个类写了操作数据库里面数据的各种方法
public class UserDao {
//全局连接对象、预处理语句对象、结果集对象、连接类对象变量
Connection conn = null;
PreparedStatement pre = null;
ResultSet rs = null;
DBConn dbc = new DBConn();
//根据id号查询
public UserBean getAllUsersByuserId(int id)
{
//实例化用户类对象
UserBean user = new UserBean();
//要执行的SQL语句
String sql = "select * from users where userid = ?";
try {
//先打开数据库连接
conn = dbc.getConn();
//获得执行SQL的命令
pre = conn.prepareStatement(sql);
pre.setInt(1, id);//传参
//把SQL命令执行的内容赋值给结果集,这个地方千万不能把顺序写反了
rs = pre.executeQuery();
//如果读取到了内容,就把值赋给user对象
if(rs.next())
{
//后面的字段要与数据库列名相同
user.setUserId(rs.getInt("userid"));
user.setUserName(rs.getString("name"));
user.setUserPass(rs.getString("userpass"));
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//最后要关上数据库
dbc.close(conn, pre, rs);
}
return user;
}
//查询所有,返回类型是集合
public ArrayList getAlluser()
{
//实例化集合
ArrayList array = new ArrayList();
String sql = "select * from users";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
rs = pre.executeQuery();
while(rs.next())
{
//把查询到的结果集添加到ArrayList集合中去,无论是字符串还是int,取出的值一定要与数据库对应
array.add("id号:"+rs.getString("userid"));
array.add("姓名:"+rs.getString(2));
array.add("密码:"+rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
dbc.close(conn, pre, rs);
}
return array;
}
//删除
public boolean deleteUser(int id)
{
boolean bool = false;
String sql = "delete users where userid = ?";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setInt(1, id);//这一步千万不要忘写或写错了顺序,很搞死人的
int count = pre.executeUpdate();//受影响的行数
if(count0)
{
bool = true;
System.out.println("删除成功!");
return bool;//这一步是节省资源的办法,如果是正确的后面的就不执行
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("删除不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}
//增加,这里面的参数是一个用户
public boolean insertUser(UserBean user)
{
boolean bool = false;
String sql = "insert into users values(?,?)";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setString(1, user.getUserName());
pre.setString(2, user.getUserPass());
int count = pre.executeUpdate();
if(count0)
{
bool = true;
System.out.println("插入成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("插入不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}
//修改
public boolean updateUser(UserBean user)
{
boolean bool = false;
String sql = "update users set username = ? where userid = ?";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setString(1, user.getUserName());
pre.setInt(2, user.getUserId());
int count = pre.executeUpdate();
if(count0)
{
bool = true;
System.out.println("修改成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("修改不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}
//验证登陆,,这里面的参数是自定义的两个参数
public boolean getAllUsersByUserNameAnduserPass(String name,String pass)
{
boolean bool = false;
//要执行的SQL语句
String sql = "select * from users where username = ? and userpass =?";
try {
//先打开数据库连接
conn = dbc.getConn();
//获得执行SQL的命令
pre = conn.prepareStatement(sql);
pre.setString(1,name);//传用户名
pre.setString(2,pass);//传用户密码
rs = pre.executeQuery();
//如果读取到了东西,则进行下述操作
if(rs.next())
{
bool = true;
System.out.println("登陆成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("登陆不成功!");
}
finally
{
//最后要关上数据库
dbc.close(conn, pre,rs);
}
return bool;
}
//查询总的记录数
public int countUser()
{
//要执行的SQL语句,SQL语句用到了一个sd,是用来取值的
String sql = "select count(*) as ad from users ";
int count = 0;
try {
//先打开数据库连接
conn = dbc.getConn();
//获得执行SQL的命令
pre = conn.prepareStatement(sql);
rs = pre.executeQuery();
//如果读取到了东西,则进行下述操作
if(rs.next())
{
//获得ad的值,也就是总行数
count=Integer.parseInt(rs.getString("ad"));
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//最后要关上数据库
dbc.close(conn, pre,rs);
}
//返回总行数
return count;
}
}
第四个包main包中的类:
package main;
import bean.UserBean;//映射数据库包
import support.DBConn;//连接数据库包
import java.util.*;//集合包
import java.sql.*;//数据库包
import dao.UserDao;//操作数据库方法包
//测试类
public class Test
{
public static void main(String args[])
{
//测试根据id号查询方法
UserDao ud = new UserDao();
// //用一个用户去接收ud方法中的值
// UserBean ub = ud.getAllUsersByuserId(1);
// //分别输出打印
// System.out.println("id号:"+ub.getUserId());
// System.out.println("姓名:"+ub.getUserName());
// System.out.println("密码:"+ub.getUserPass());
//
//
// //测试查询所有
// ArrayList array = ud.getAlluser();
// for(int i=0;iarray.size();i++)
// {
// //因为装进去的是字符串,所以也要定义相对的类型接收
// //array的取值也有不同用get()
// String s = array.get(i).toString();
// System.out.println(s);
// }
//
//
// //测试删除方法
// boolean b=ud.deleteUser(3);
//
// //测试插入方法,这个用到的是用户类的构造函数
// UserBean user = new UserBean("曹元","123");
// boolean bl =ud.insertUser(user);
//
//
// //测试修改方法,这个用到的是直接给类对象赋值方式
// UserBean userbean = new UserBean();
// userbean.setUserName("laoying");
// userbean.setUserId(4);
// boolean ble =ud.updateUser(userbean);
//测试验证方法
// boolean blea = ud.getAllUsersByUserNameAnduserPass("laoying", "123");
//测试查询的总行数
//用来接收总行数的变量
int i = ud.countUser();
System.out.println("查询到的总行数为:"+i);
}
}
java自定义类及使用
class定义类 public class Person{}
使用类java自定义生成代码,需要创建类的对象 Person p = new Person()
在Java中java自定义生成代码,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的)。
在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化java自定义生成代码:
对于 char、short、byte、int、long、float、double等基本数据类型的变量来说会默认初始化为0(boolean变量默认会被初始化为false);
对于引用类型的变量,会默认初始化为null。
如果没有显示地定义构造器,则编译器会自动创建一个无参构造器,但是要记住一点,如果显示地定义了构造器,编译器就不会自动添加构造器。
关于java自定义生成代码和java 生成代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。