发表于: 2017-12-08 07:35:56

2 784


今天完成的事: 

       一 、下载了  mysql-connector-java-5.1.45-bin.jar 用 java 语言连接接数据库,简单测试 Statement 类,PreparedStatement 类

[java] view plain copy
  1. public static void main(String[] args) {

    //类的路径

    String driver="com.mysql.jdbc.Driver";

    // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称

    String url = "jdbc:mysql://localhost:3306/xiuzhen";

    //用户名

    String user = "root";

    //密码

    String password="";

    try {

    Class.forName(driver);

    Connection conn = DriverManager.getConnection(url, user, password);

       System.out.println(conn);

       

       //Statement

       Statement st = conn.createStatement();

       

       String sql ="delete from enter_info where e_name=''";

       st.execute(sql);

       

       sql="select * from enter_info limit 10";

       ResultSet rs = st.executeQuery(sql);

       

       while(rs.next()){

        // System.out.println(rs.getString("e_name")+"\t"+rs.getInt("e_qq"));

       }

       

       //PreparedStatement

       PreparedStatement ps = null;

       ps = conn.prepareStatement("select * from enter_info where e_name like ?");

       

       ps.setString(1, "%六%");

       

       ResultSet prs = ps.executeQuery();

       

       while(prs.next()){

        System.out.println(prs.getString("e_name")+"\t"+prs.getString("e_borther"));

       }

       

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

二、实现了JdbcTemplate 类

[java] view plain copy
  1. package com.jdbc;

    import java.sql.*;

    public class JdbcTemplate {

    private Connection conn;

    public JdbcTemplate(){

    public JdbcTemplate(Connection conn){

    this.conn = conn;

    /**

    * @param sql 数据库sql语句

    * @param callback  

    * public interface RowCallBackHandler {

       void processRow(ResultSet rs);

    }

    * 将结果集返回给调用者操作。

    * 实现回调

    */

    public void query(String sql, RowCallBackHandler callback){

    try {

    Statement st = conn.createStatement();

    ResultSet rs=st.executeQuery(sql);

    if(callback !=null){

    callback.processRow(rs);

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /**

    * @param sql

    * @param setter

    * public interface PreparedStatementSetter {

    void setValues(PreparedStatement ps);

    }

    * 给sql语句中的(“?”)--作为占位符,设置参数。

    * 由调用者去实现占位符的替换

    * @param callback

    */

    public void query(String sql,PreparedStatementSetter setter , RowCallBackHandler callback){

    try {

    PreparedStatement ps = conn.prepareStatement(sql);

    if(setter != null){

    setter.setValues(ps);

    }

    ResultSet rs =ps.executeQuery();

    if(callback != null){

    callback.processRow(rs);

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public void update(String sql,PreparedStatementSetter setter){

    try {

    PreparedStatement ps = conn.prepareStatement(sql);

    if( setter != null){

    setter.setValues(ps);

    }

    ps.execute();

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

三、用写好的模板实现 接口  IStudentDAO ,并做出简单的数据库数据操作

[java] view plain


public interface IStudentDAO {

void saveStudent(Student stu , Connection conn);

void deleteStudent(int id , Connection conn);

void updateStudent(Student stu , Connection conn);

Student findStudent(int id , Connection conn);

List<Student> findStudents(Connection conn);

}

 copy

接口实现类代码

[java] view plain copy
  1. package com.stuDAO;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.util.ArrayList;

    import java.util.List;

    import com.bean.Student;

    import com.jdbc.JdbcTemplate;

    import com.jdbc.RowCallBackHandler;

    public class StudentImpl implements IStudentDAO {

    public void saveStudent(Student stu, Connection conn) {

    JdbcTemplate jt = new JdbcTemplate(conn);

    String name = stu.getName();

    int qq = stu.getQq();

    String sch = stu.getSchool();

    long create = stu.getCreate();

    long update = stu.getUpdate();

    String sql = "insert into student(name,qq,school,create_at,update_at) values ('"+name+"',"+qq+",'"+sch+"',"+create+","+update+")";

    //System.out.println(sql);

    jt.update(sql, null);

    }

    public void deleteStudent(int id, Connection conn) {

    // TODO Auto-generated method stub

    JdbcTemplate jt = new JdbcTemplate(conn);

    String sql = "delete from student where id="+id;

    jt.update(sql, null);

    }

    public void updateStudent(Student stu, Connection conn) {

    // TODO Auto-generated method stub 偷个懒

    JdbcTemplate jt = new JdbcTemplate(conn);

    deleteStudent(stu.getId(),conn);

    saveStudent(stu,conn);

    }

    public Student findStudent(int id, Connection conn) {

    // TODO Auto-generated method stub

    JdbcTemplate jt = new JdbcTemplate(conn);

    final Student s = new Student();

    String sql = "select * from student where id="+id;

    jt.query(sql, new RowCallBackHandler(){

    public void processRow(ResultSet rs) {

    try {

    while(rs.next()){

    //System.out.println(rs.getString("name"));

    s.setId((Integer) rs.getObject(1));

    s.setName((String) rs.getObject(2));

    s.setQq((Integer) rs.getObject(3));

    s.setSchool((String) rs.getObject(4));

    s.setCreate((Long) rs.getObject(5));

    s.setUpdate((Long) rs.getObject(6));

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    });

    return s;

    }

    public List<Student> findStudents(Connection conn) {

    // TODO Auto-generated method stub

    JdbcTemplate jt = new JdbcTemplate(conn);

    String sql = "select * from student";

    final List<Student> list = new ArrayList<Student>();

    jt.query(sql, new RowCallBackHandler(){

    public void processRow(ResultSet rs) {

    // TODO Auto-generated method stub

    try {

    while(rs.next()){

    Student s = new Student();

    s.setId((Integer) rs.getObject(1));

    s.setName((String) rs.getObject(2));

    s.setQq((Integer) rs.getObject(3));

    s.setSchool((String) rs.getObject(4));

    s.setCreate((Long) rs.getObject(5));

    s.setUpdate((Long) rs.getObject(6));

    list.add(s);

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    });

    return list;

    }

    }


 copy

了解修饰符  final      https://www.cnblogs.com/lwbqqyumidi/p/3513047.html



 



返回列表 返回列表
评论

    分享到