zoukankan      html  css  js  c++  java
  • 软工实训--学习回顾2

    Mybatis的建立,涉及的代码:

    Dbutils.java:

    package cn.neusoft.mybatis.jdbc;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;

    public class Dbutils {
        
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost:3306/mybatis";
        private static final String UNAME = "root";
        private static final String UPWD = "123";
        
        private static Connection con = null;//连接对象  
        private static ResultSet rs = null;//放查询结果的
        private static PreparedStatement ps = null;//放sql文并且可以拼接sql文的对象
        
        static{
            try {//驱动加载
                Class.forName(DRIVER);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        //获取连接
        public static void getConnection(){
            try {
                con = DriverManager.getConnection(URL, UNAME, UPWD);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //关闭连接
        public static void closeAll(){
            if(null!=rs){
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(null!=ps){
                try {
                    ps.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(null!=con){
                try {
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        //执行查询
        public static ResultSet executeQuery(String sql,Object[] obj){
            getConnection();
            //System.out.println(obj);
            //如果sql文不完整,是需要进行拼接的
            try {
                ps = con.prepareStatement(sql);
                
                if(null!=obj){
                    for(int i=0;i<obj.length;i++){
                        ps.setObject(i+1, obj[i]);
                    }
                }
                rs = ps.executeQuery();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return rs;
        }
        //公共的执行  增、删、改 操作 insert  delete   update
        public static int executeUpdate(String sql,Object[] obj){
            int count = 0;
            getConnection();
            try {
                ps = con.prepareStatement(sql);
                if(null!=obj){
                    for(int i=0;i<obj.length;i++){
                        ps.setObject(i+1, obj[i]);
                   }
                }
                count = ps.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                closeAll();
            }
            return count;
        }
        //如果要使用创表语句之类,可以使用如下代码
        public static boolean executeCreate(String sql,Object[] obj){
            getConnection();
            boolean b =false;
            try {
                ps = con.prepareStatement(sql);
                if(null!=obj){
                    for(int i=0;i<obj.length;i++){
                        ps.setObject(i+1, obj[i]);
                    }
                b = ps.execute();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                closeAll();
            }
            if(b){
                return true;
            }
            return false;
        }
    }

    JDBC测试包:
    package cn.neusoft.mybatis.jdbc;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;

    public class TestJdbc {

        /**
         *jdbc  主要用于  java程序  访问数据库
         */
        public static void main(String[] args) {
            //连接信息
            //数据库链接
            Connection con = null;
            //预编译对象
            PreparedStatement ps = null;
            //如果要进行查询操作,需要使用    结果集对象
            ResultSet rs = null;        
            try {
                //加载驱动
                Class.forName("com.mysql.jdbc.Driver");
                //获取连接
                //jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
                //                localhost代表访问地址   可以是127.0.0.1 也可以是localhost
                //              还可以是ip地址   3306代表端口号     mybatis是数据库名   严格区分大小写
                con = DriverManager.getConnection(
                        "jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf-8",
                        "root",
                        "123");
                //sql 文处理     ? 只是一个占位符
                String sql = "select * from userinfo where username = ?";
                // *  代替所有  对于本句 包含了  userid,username,pwd  三列
                //实际开发 写成   select userid,username,pwd from userinfo where
                //                username=?
                //把sql 文放入预编译对象进行处理
                ps = con.prepareStatement(sql);
                //给ps  对象  传入你要具体查询的人的信息   相当于  给之前sql 文 的  ?  传值
                ps.setString(1, "张三");
                //这里的方法是执行一个查询操作,需要把查询结果放在ResultSet中
                //   如果是要执行  插入、删除、更新操作    ps.execute();
                rs = ps.executeQuery();
                //把查询结果  从rs 对象中取出来
                while(rs.next()){
                    //  rs.getInt("userid")  是sql文中的  userid        
                    int userid = rs.getInt("userid");
                    String username = rs.getString("username");
                    String pwd = rs.getString("pwd");
                    
                    System.out.println("编号:"+userid+"姓名:"+username+"密码"+
                    pwd);
                }
                
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

    }

    示例:

    有1000条数据  

    每页只会显示部分  ,每页显示20条数据

    第一页  显示1-20条

    第二页  显示21-40条

     问:每页显示3条记录的情况

    (每页显示几条  以及  页码)

    (3n-2,3n)

    select * from userinfo limit 3(n-1),3;

    select * from userinfo limit  pageSize(pageNo-1),pageSize;

    package cn.neusoft.mybatis.pojo;

    实体类Userinfo的建立://主要
    /**
     *   Userinfo  是一个实体类  用于 与表作对应的实体映射文件
     *        该类中   各个属性   对应   userinfo 表中的属性
     */
    public class Userinfo {
        private Integer userid;
        private String username;
        private String pwd;
        
        @Override
        public String toString() {
            return "Userinfo [userid=" + userid + ", username=" + username
                    + ", pwd=" + pwd + "]";
        }
        //生成 get set 方法        alt+shift+s  选择 set get 方法生成
        //生成构造方法  
        //无参的构造方     如果不写的话,默认生成一个   无参的构造方法
        public Userinfo() {
            super();
        }
        //有参的构造方法
            public Userinfo(String username, String pwd) {
            super();
            this.username = username;
            this.pwd = pwd;
        }
        public Integer getUserid() {
            return userid;
        }

        public void setUserid(Integer userid) {
            this.userid = userid;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
        
        
    }

    待续。。。。。。

  • 相关阅读:
    换手机了,dopod566,小E丢了 :(
    在a标签的href与onclick中使用javascript的区别
    我的SQL相关TIPS
    asp.net的ajax服务器端代理
    IE和Firefox中的dom加载完成执行代码(defer)
    看几个源码,自己多做项目了!
    数据层使用Server对象;动态生成控件多文件上传
    ref,out(摘)
    JavaScript和jQuery的DOM操作
    闭包
  • 原文地址:https://www.cnblogs.com/dingry11-96/p/7100229.html
Copyright © 2011-2022 走看看