短学期小结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;
    }
    
    
}

时间: 2024-10-28 21:39:41

短学期小结2的相关文章

短学期小结1

下载myeclipse Navicat for MySQL 连接数据库并使用JAVA语言实现 增 删 改 查,具体代码如下: 接口类UserinfoDao代码 package cn.neusoft.mybatis.dao; import java.util.List; import cn.neusoft.mybatis.pojo.Userinfo; public interface UserinfoDao { //插入用户信息的插入       Userinfo 实体类可以携带  用户信息  

短学期小结(1)

[插入用户信息.删除.查询方法的代码如下:] package cn.neusoft.mybatis.dao; import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List; import cn.neusoft.mybatis.jdbc.Dbutils;import cn.neusoft.mybatis.pojo.Userinfo; public cla

短学期实验感想1

在短学期刚开始的几天,我们先进行了实验环境的配置.首先我们安装了my eclipse作为开发环境,然后tomcat作为调试工具.在tomcat6.0的安装中遇到了一些小问题.刚开始打开不能正确运行,在网上查找答案发现需要配置系统变量.在配置好后,再打开,仍然不能运行.后来重启电脑后发现是之前8080端口被之前打开的tomcat所占用.虽然有些困难,但还是完成了实验环境的准备. 实验过程中遇到的一个较难解决的问题便是运行服务出错,后来和老师讨论后发现是因为没有连接网络.即使服务是在本地运行,但我们

软件工程短学期实践第一次随笔

在所有科目期末考试之后,我们开始了我们为期两周的短学期软件工程实践,在软件工程实践课上,老师悉心教导我们.第一天老师帮助我们下载java软件.Navicat Premium等软件,还帮助我们配置了java环境,使我们每一个同学可以在自己的电脑上编写以及运行java程序.随后我们跟着老师一起学习一起实践,开始编写主要代码,设计界面. 首先我们用Navicat Premium建立了一个数据库Cust: 有id,custno,custname,telephone,sex等属性 然后,我们开始用Myec

短学期实训——第一篇

短学期的第一天,东软的李老师让我们安装两个环境,在安装过程当中,虽然遇到很多的小困难,老师还是 耐心的为我们每位同学解决困难. , 终于在下午我们完成了第一项任务 在第二天我们 开始编写程序 虽然在运行过程中我们每个人的编辑环境都出现了问题,但是在老师的耐心指导下我们终于将此环境运行成功 利用这三天的时间,我深刻体会到了用户的体验,我们所编写的软件是针对用户而言的,我们应当 考虑到用户体验的各种角度,首先就是用户的第一印象,在这里我们要考虑以下两点,第一点就是谁会是我们的目标用户,第二点就是用户

暑期完善 短学期实践工程 内容记录一

因先前一直在备考雅思,前不久刚刚告一段落,最近终于有时间把短学期内的工程内容捡起来完善.因为时隔已久不少技术性的内容遗忘情况还是挺重的. 近期主要优化完善了登录/注册页面的代码,添加了背景图片和一些细节上的改动,增加了返回主界面的按钮,修复了登录.注册两个功能块有时不能跳转的BUG,更改了使用的CSS样式并解决了有时样式不能正常显示等问题 下面附上代码 <login.jsp> <head> <base href="<%=basePath%>"&

软件工程短学期实践第三次随笔

软件工程短学期实践即将接近尾声,我们的软件工程项目也已趋于完成. 软件工程短学期实践项目: 这是一个简单的客户信息管理维护软件,它能把客户编号.客户姓名.客户电话和客户性别保存在数据库之中,我们可以在数据库中查询保存的客户信息,还可以随时修改以及删除客户信息. 随后,我们在老师的指导下,开始自己修改设计软件,我做的是库存管理项目,代码如下: package com.crm.action; import java.util.Map; import com.crm.bean.Item; import

短学期知识总结(一)

本次的短学期学习,我的收获很多,学习了很多以往都不曾了解的知识.以下是短学期中所讲的部分知识点: Springmvc的概念:springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合.它是一个基于mvc的web框架. MVC在B/S系统下的应用: 1>     用户发起request 请求至控制器 控制接收用户请求的数据,委托给模型进行处理 2>     控制器通过模型处理数据并得到处理结果 模型通常是指业务逻辑 3>     模型处理结果

短学期知识总结(二)

在本次的短学期当中,我学到了拦截器的一些相关知识,可以说是非常实用的,也是大部分做网页的都必须涉及的.以下为拦截器的相关知识: Spring Web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 定义拦截器: 实现HandlerInterceptor接口 接口中提供三个方法(preHandle,postHandle,afterHandle) 配置拦截器 Springmvc拦截器针对HandlerMapping中配置拦截,经过该Handler