发表于: 2018-03-11 18:59:04
1 593
今天完成的事情:配置了Jutil和Spring
明天计划的事情:继续完善DAO包
遇到的问题:关于Impl上,我了解到两种写法
package dao;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class UserDAOImpl{
//数据库信息
public static final String URL = "jdbc:mysql://localhost:3306/test";
public static final String USER = "root";
public static final String PASSWORD = "1024";
//其一
/*
private Connection conn;
private PreparedStatement ps;
long time = new Date().getTime();
//插入数据
public int insert(String Sname,long Sqq,String Stype
,long JoinTime,String Sschool,int Sno) {
int result = 0;
conn = ConnectionManager.getConnection();
try {
String sql = "insert into registration"
+ "(Sname,Sqq,Stype,JoinTime,Sschool,Sno)"
+ "values(?,?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, Sname);
ps.setLong(2, Sqq);
ps.setString(3, Stype);
ps.setLong(4, JoinTime);
ps.setString(5,Sschool);
ps.setInt(6, Sno);
result = ps.executeUpdate();
}catch(SQLException e) {
e.printStackTrace();
}finally {
ConnectionManager.closeStatement(ps);
ConnectionManager.closeConnection(conn);
}
return result;
}
*/
//其二
/*
public static void main(String[] args) throws Exception{
//加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//链接数据库
Connection conn = DriverManager.getConnection(URL,USER,PASSWORD);
//操作数据库
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Sname,Sqq FROM registration");
//如果有数据,rs.next()返回true
while(rs.next()) {
System.out.println(rs.getString("Sname")+"QQ:"+rs.getInt("Sqq"));
}
}
*/
经过查询,PreparedStatement要比Statement在可读性和安全性都要高
但是我不明白一例中,没有传入URL,User,Password等信息是如何连接到服务器的
想用二的连接方式加上一的PreparedStatement来完成Impl,
PreparedStatement ps = conn.createStatement();
到这里时我就不知道conn该引用什么,因为我在这里只是想做一个接口,增改删查想在另外的功能class中调用
收获:对JDBC的运作方式更加了解
评论