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;
        }
        
        
    }

    待续。。。。。。

  • 相关阅读:
    NanoProfiler
    NanoProfiler
    Open Source Cassandra Gitbook for Developer
    Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
    Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
    Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
    Android Fragment使用(一) 基础篇 温故知新
    Set up Github Pages with Hexo, migrating from Jekyll
    EventBus源码解析 源码阅读记录
    Android M Permission 运行时权限 学习笔记
  • 原文地址:https://www.cnblogs.com/dingry11-96/p/7100229.html
Copyright © 2011-2022 走看看