JDBC执行SQL语句的两种方式:Statement和PreParedStatement,它们用于发送SQL语句给数据库执行。在开发过程中,通常会把增删改查语句封装在DAO层(数据库访问层)中,接下来的使用案例会以Dao层封装JDBC操作的形式来演示Stament和PreparedStatement。
用于测试的表,可根据个人需求更改
create table t_user(
u_id int identity(1,1) not null,
u_name varchar(16) not null,
u_psw varchar(16) not null,
u_age int not null,
u_sex varchar(2) not null,
primary key(u_id),
)
//用户类,与测试表进行对应
public class User {
private String name;
private String psw;
private int age;
private String sex;
public User(String name, String psw, int age, String sex) {
this.name = name;
this.psw = psw;
this.age = age;
this.sex = sex;
}
//省略getter 和 setter
}
Statement案例代码
executeUpdate()执行插入语句演示
public int insert(User u) {
Connection con = JdbcUtils.getConnection();
Statement stmt = null;
int count = 0; //影响行数
String sql = "insert into t_user values('" +u.getName() +"','" +u.getPsw()+"',"+ u.getAge()+",'"+ u.getSex()+"');";
System.out.println("插入的sql语句: " + sql);
try {
stmt = con.createStatement();
count = stmt.executeUpdate(sql);
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
executeQuery()执行查询语句演示
//根据姓名查询
public void select(User u) {
Connection con = JdbcUtils.getConnection();
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from t_user where u_name ='" + u.getName() +"';";
System.out.println("执行的sql语句: " + sql);
try {
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.print(rs.getString("u_name") +"\t"+ rs.getString("u_psw"));
System.out.println("\t