发表于: 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的运作方式更加了解



返回列表 返回列表
评论

    分享到