标签:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtils {
/**
* 数据库连接操作
* */
static String url="jdbc:mysql://localhost:3306/haha";
static String user="root";
static String password="wy123";
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 创建数据库连接
* @throws SQLException
* */
public Connection getConnection() throws SQLException{
Connection conn=DriverManager.getConnection(url, user, password);
return null;
}
/**
* 关闭数据库操作1:PreparedStatement ps,Connection conn
* */
public static void close1(PreparedStatement ps,Connection conn){
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
/**
* 数据库连接操作2:
* */
public static void close2(ResultSet rs,PreparedStatement ps,Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
close1(ps, conn);
}
}
@Override
public boolean insert(User user) {
boolean flag=false;
Connection conn=null;
PreparedStatement ps=null;
try {
//获取数据库连接
conn=DBUtils.getConnection();
//创建并执行SQL语句
ps=conn.prepareStatement("insert into user(name,password,logintime)value(?,?,?)");
//通过prepareStatement对象设置属性具体数值
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ps.setDate(3, new java.sql.Date(System.currentTimeMillis()));
//执行sql语句,int n用来判断插入的语句个数是否为0
int n=ps.executeUpdate();
if(n>0){
flag=true;
}
//关闭数据库连接
DBUtils.close1(ps, conn);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return flag;
}
在JDBC中prepareStatement接口提供了execute,executeQuery和executeUpdate等三个执行SQL的语句方法,三个方法的区别:
- executeQuery:用于产生单个结果集的语句,例如SELECT,这个方法最多用来使用SELECT查询
- executeUpdate:用于执行用于执行 INSERT,UPDATE,DELETE等语句,其返回值是一个整数,表示受到该语句影响的行数
- execute:用于执行返回多个结果集,多个更新计数
标签:
原文地址:http://www.cnblogs.com/sinon/p/5825478.html