首页 JDBC连接数据库

JDBC连接数据库

举报
开通vip

JDBC连接数据库JDBC连接数据库之一:添加数据 本例两个页面,一个页面接受数据1.htm,一个页面接受数据并存入数据库1.jsp 新建的MySQl数据库person表 create table person ( id int(3) auto_increment not null primary key, name varchar(10), password varchar(20), age int(3) ); 1.htm代码 姓名: 密码: 年龄: 2.jsp代码 <%     request.setCharac...

JDBC连接数据库
JDBC连接数据库之一:添加数据 本例两个页面,一个页面接受数据1.htm,一个页面接受数据并存入数据库1.jsp 新建的MySQl数据库person 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf create table person ( id int(3) auto_increment not null primary key, name varchar(10), password varchar(20), age int(3) ); 1.htm代码
姓名:
密码:
年龄:
2.jsp代码 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%!     String DBDRIVER = "com.mysql.jdbc.Driver" ;     String DBURL = "jdbc:mysql://127.0.0.1:3306/demo_db?user=root&password=123456" ;     Connection conn = null ;     Statement stmt = null ;     PreparedStatement pstmt = null ;     String sql = null ; %> <%     request.setCharacterEncoding("GB2312") ;     String name = request.getParameter("uname") ;     String password = request.getParameter("upass") ;     int age = 0 ;     try     {         age = Integer.parseInt(request.getParameter("age")) ;     }     catch(Exception e)     {}     sql = "INSERT INTO person (name,password,age) VALUES (?,?,?)" ;     sql1 = "INSERT INTO person (name,password,age) VALUES ('"+name+"','"+password+"',"+age+")" ;     try     {         Class.forName(DBDRIVER) ;//步骤一、加载驱动程序         conn = DriverManager.getConnection(DBURL) ;//步骤二、连接数据库         pstmt = conn.prepareStatement(sql) ;//步骤三、操作数据库,添加数据         pstmt.setString(1,name) ;         pstmt.setString(2,password) ;         pstmt.setInt(3,age) ;         pstmt.executeUpdate() ;         // 或者        stmt = conn.createStatement();        stmt.executeUpdate(sql1);        out.println("数据添加成功败!!!") ;     }     catch(Exception e)     {         out.println("数据库驱动程序加载失败!!!") ;         e.printStackTrace();     }     try     {         pstmt.close() ;//步骤 四:关闭数据库         stmt.close();         conn.close() ;     }     catch(Exception e)     {         out.println("数据库关闭失败!!!") ;         e.printStackTrace();     } %> 步骤一、加载驱动程序 Class.forName(DBDRIVER); 步骤二、连接数据库 Connection conn=DriverManager.getConnection(DBURL); 步骤三、操作数据库 Statement 类一般常用三个方法executeUpdate(),executeQuery(),execute(). executeUpdate()执行增、删、改 executeQuery()执行查询,返回为结果集 stmt = conn.createStatement(); String sql1 = "INSERT INTO person (name,password,age) VALUES ('casa2','123456',28)" ; String sql2 = "SELECT FROM person"; stmt.executeUpdate(sql1); ResultSet rs = stmt.executeQuery(sql2); String sql3= "INSERT INTO person (name,password,age) VALUES (?,?,?)" ; pstmt = conn.preparedStatment(sql3) pstmt.setString(1,"casa2"); pstmt.setString(2,"123456"); pstmt.setInt(3,28); pstmt.executeUpdate(); 步骤四、关闭数据库 JDBC连接数据库之二:列表显示数据 本例将数据库中的数据列表显示,只有一个jsp文件2.jsp 2.jsp <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%--     此代码主要进行查询操作 --%> <%!     String DBDRIVER = "com.mysql.jdbc.Driver" ;        String DBURL = "jdbc:mysql://127.0.0.1:3306/demo_db?user=root&password=123456" ;     Connection conn = null ;     Statement stmt = null ;     String sql = null ;     ResultSet rs = null ; %> <%     try     {         Class.forName(DBDRIVER) ;//步骤一、加载驱动程 序         conn = DriverManager.getConnection(DBURL) ;//步骤二、连接数据库         stmt = conn.createStatement() ;//步骤 三、操作数据库,返回结果集         sql = "SELECT id,name,password,age FROM person" ;         rs = stmt.executeQuery(sql) ; %>                                             <%         while(rs.next())         {             int id = rs.getInt(1) ;             String name = rs.getString(2) ;             String password = rs.getString(3) ;             int age = rs.getInt(4) ; %>                                                                                         <%         } %>    
ID姓名密码年龄
<%=id%><%=name%><%=password%><%=age%>
<%     }     catch(Exception e)     {         out.println("操作数据库失败!!!") ;     }     try     {         rs.close() ;//步骤四:关闭数据库         stmt.close() ;         conn.close() ;     }     catch(Exception e)     {         out.println("数据库关闭失败!!!") ;     } %> JDBC连接数据库之三:JavaBean实现增、删、改、查的一个实例 本实例通过JavaBean进行数据的增、删、改、查,使用到的页面和JavaBean见下表所示: 源码下载 ch06-3(749.74K) 序号 文件名 类型 功能描述 1 index.html 页面 显示主菜单 2 addStudent.jsp 页面 添加学生信息页面 3 addStudent_do.jsp 页面 调用JavaBean处 理添加 4 deleteStudent.jsp 页面 列表显示所以学生,选择删除的学生 5 deleteStudent_do.jsp 页面 调用JavaBean处 理删除 6 modifyStudent.jsp 页面 列表显示所以学生,选择修改的学生 7 modifyStudent_pro.jsp 页面 修改某一学生信息 8 modifyStudent_do.jsp 页面 调用JavaBean处 理修改 9 viewStudent.jsp 页面 列表显示所有学生信息 10 searchStudentBySid.jsp 页面 根据学号进行查询 11 DataBaseConnection.java JavaBean 连接数据库 12 Student.java JavaBean 封装学生信息的JavaBean 13 StudentUtil.java JavaBean 实现学生信息的增、删、改、查 一、首先建立数据库: 在MySQL数据里建立jsp_db数据库-student表 USE jsp_db; DROP TABLE IF EXISTS student; CREATE TABLE student ( sid varchar(20) NOT NULL, name varchar(30) default NULL, sex int(1) default NULL, phone varchar(16) default NULL, birth date default NULL, Constraint primary key pk_student(sid) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312; 二、在Eclipse里新建web工程ch6-3;        在src文件新建ch6包;        把三个Java类拷贝到ch6里,更改DataBaseConnection.java的连接MySQL字符串;        把mysql-connector-java-5.1.5-bin.jar拷贝到WEB-INF/lib文件夹里;       其他JSP页面文件拷贝到WebRoot里,部署项目,重启Tomcat服务器,实例代码就能运行了。 三、代码分析 1.index.html 学生管理

学生管理

增加学生
删除学生
更改学生信息
查看所有学生

按学生的学号查询:
2.addStudent.jsp <%@ page contentType="text/html; charset=gb2312" language="java" %> 增加学生 <% request.setCharacterEncoding("gb2312");%>  

增加一个新的学生

学号:
姓名:
性别: 男                  
电话:
出生日期:日期格式:1996-08-11
3.addStudent_do.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*" %> 增加学生 <% request.setCharacterEncoding("gb2312");%> //id:表示所建的JavaBean实例的名称;class:表示这个JavaBean的类名 //通过内省机制,根据请求的参数名称,自动设定与JavaBean相同属性名称的值 <%studentUtil.addStudent(student);%>

增加学生成功

返回
4.deleteStudent.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*,java.util.*" %> 删除学生 <% request.setCharacterEncoding("gb2312");%>

删除一个学生

<% Collection students=studentUtil.getAllStudent(); Iterator it=students.iterator(); while(it.hasNext()) {     Student temp=(Student)it.next();     out.println("");        out.println("");        try    {         String sex = (temp.getSex()==1)?"男":"女";         out.println("");         out.println("");         out.println("");         out.println("");     }        catch(Exception e)    {            e.printStackTrace();    }        out.println(""); } %>
学号姓名性别< /td>电话出生日期删除< /td>
"+temp.getSid()+""+temp.getName()+""+sex+""+temp.getPhone()+""+temp.getBirth()+"删除");     out.println("
返回
5.deleteStudent_do.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*" %> 删除成功 <% request.setCharacterEncoding("gb2312");%> <% studentUtil.deleteStudent((String)request.getParameter("sid")); response.sendRedirect("deleteStudent.jsp"); %>
6.modifyStudent.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*,java.util.*" %> 选择要更改的学生 <% request.setCharacterEncoding("gb2312");%>

选择要更改的学生

<% Collection students=studentUtil.getAllStudent(); Iterator it=students.iterator(); while(it.hasNext()) {     Student temp=(Student)it.next();     out.println("");     out.println("");        try    {            String sex = (temp.getSex()==1)?"男":"女";         out.println("");         out.println("");         out.println("");         out.println("");     }     catch(Exception e)    {            e.printStackTrace();    }     out.println(""); } %>
学号姓名性别< /td>电话出生日期更改< /td>
"+temp.getSid()+""+temp.getName()+""+sex+""+temp.getPhone()+""+temp.getBirth()+"更改");     out.println("
返回
7.modifyStudent_pro.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*" %> <% request.setCharacterEncoding("gb2312");%> 更改学生信息
<% String sid=request.getParameter("sid"); Student student=studentUtil.getStudentInfo(sid); %>

更改一个学生

学号:
姓名:
性别: <%if(student.getSex()==1){%> 男                   女 <%}else{%> 男                   女 <%}%>
电话:
出生日期:日期格 式:1996-08-11
8.modifyStudent_do.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*" %> 更改学生 <% request.setCharacterEncoding("gb2312");%> <%studentUtil.modifyStudent(student);%>

更改学生成功

返回
源码下载 ch06-3(749.74K) JDBC连接数据库之三:JavaBean实现增、删、改、查的一个实例(续前) 9.viewStudent.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*,java.util.*" %> 查看所有的学生 <% request.setCharacterEncoding("gb2312");%>

查看所有的学生

<% Collection students=studentUtil.getAllStudent(); Iterator it=students.iterator(); while(it.hasNext()) {     Student temp=(Student)it.next();     out.println("");        out.println("");        try    {         String sex = (temp.getSex()==1)?"男":"女";         out.println("");         out.println("");         out.println("");         out.println("");     }        catch(Exception e)    {            e.printStackTrace();    }        out.println(""); } %>
学号姓名性别< /td>电话出生日期
"+temp.getSid()+""+temp.getName()+""+sex+""+temp.getPhone()+""+temp.getBirth()+"
返回
10.searchStudentBySid.jsp <%@ page contentType="text/html; charset=gb2312" language="java" import="ch6.*,java.util.*" %> 搜索结果 <% request.setCharacterEncoding("gb2312");%>
<% String sid=request.getParameter("sid");%>

查看学号为<%=sid%>的学生

<% Collection students=studentUtil.getStudentBySid(sid); Iterator it=students.iterator(); while(it.hasNext()) {     Student temp=(Student)it.next();     out.println("");             out.println("");        try    {         String sex = (temp.getSex()==1)?"男":"女";         out.println("");         out.println("");         out.println("");         out.println("");     }        catch(Exception e)    {            e.printStackTrace();    }     out.println(""); } %>
学号姓名性别< /td>电话出生日期
"+temp.getSid()+""+temp.getName()+""+sex+""+temp.getPhone()+""+temp.getBirth()+"
返回
11.DataBaseConnection.java package ch6; import java.sql.*; //连接数据库的工具类。 public class DataBaseConnection {     /**     *一个静态方法,返回一个数据库的连接。     *这样达到了对数据库连接统一控制的目的。     */     public static Connection getConnection()     {         Connection con=null;         String CLASSFORNAME="com.mysql.jdbc.Driver";         String serverInfo="jdbc:mysql://127.0.0.1:3306/jsp_db?user=root&password=1234&useUnicode=true&characterEncoding=gb2312";             try         {                        Class.forName(CLASSFORNAME);             con = DriverManager.getConnection(serverInfo);                     }         catch(Exception e)         {             e.printStackTrace();         }         return con;     } } 12.Student.java package ch6; import java.io.*; public class Student implements Serializable {     /* 私有字段 */     private String sid;     private String name;     private int sex;//0:代表男 1:代表女     private String phone;     private String birth;     /* JavaBean属性访问方法 */     /** 共公方法 */         public String getBirth() {         return birth;     }     public String getName() {         return name;     }     public String getPhone() {         return phone;     }     public int getSex() {         return sex;     }     public String getSid() {         return sid;     }     public void setBirth(String birth) {         this.birth = birth;     }     public void setName(String name) {         this.name = name;     }     public void setPhone(String phone) {         this.phone = phone;     }     public void setSex(int sex) {         this.sex = sex;     }     public void setSid(String sid) {         this.sid = sid;     } } 13.StudentUtil.java package ch6; import java.sql.*; import java.util.*; /** * StudentUtil包含和Student表相关的操作 */ public class StudentUtil {     private Connection con;     //构造方法,获得数据库的连接。     public StudentUtil() {         this.con = DataBaseConnection.getConnection();     }     /**     * 搜索所有的学生信息,返回由Student值对象组成的Collection     */     public Collection getAllStudent() throws Exception {         Statement stmt = con.createStatement();         ResultSet rst = stmt.executeQuery("select * from student");         Collection ret = new ArrayList();//定义数组,存放VO对象实例         while (rst.next()) {             Student tempSt = new Student();//定义VO对象,将结果集中的每条记录赋值给VO对象             tempSt.setSid(rst.getString("sid"));             tempSt.setName(rst.getString("name"));             tempSt.setSex(rst.getInt("sex"));             tempSt.setPhone(rst.getString("phone"));             tempSt.setBirth(rst.getString("birth"));             ret.add(tempSt);//将VO对象加入数组         }         stmt.close();         con.close();         return ret;     }     /**     * 按照学生的学号查找学生,返回由Student值对象组成的Collection     */     public Collection getStudentBySid(String sid) throws Exception {         Statement stmt = con.createStatement();         ResultSet rst = stmt.executeQuery("select * from student where sid='"                 + sid + "'");         Collection ret = new ArrayList();         while (rst.next()) {             Student tempSt = new Student();             tempSt.setSid(rst.getString("sid"));             tempSt.setName(rst.getString("name"));             tempSt.setSex(rst.getInt("sex"));             tempSt.setPhone(rst.getString("phone"));             tempSt.setBirth(rst.getString("birth"));             ret.add(tempSt);         }         stmt.close();         con.close();         return ret;     }    /**     * 添加一个学生,使用Student值对象作为参数传给这个方法。     */     public void addStudent(Student student) throws Exception {             PreparedStatement pstmt = con                 .prepareStatement("insert into student values(?,?,?,?,?)");         pstmt.setString(1, student.getSid());         pstmt.setString(2, student.getName());         pstmt.setInt(3, student.getSex());         pstmt.setString(4, student.getPhone());         pstmt.setString(5, student.getBirth());         pstmt.execute();         pstmt.close();         con.close();     }     /**     * 更改学生的信息,使用Student值对象作为参数传给这个方法。     */     public void modifyStudent(Student student) throws Exception {         PreparedStatement pstmt = con                 .prepareStatement("update student set name=?, sex=?,phone=?,birth=? where sid=?");         pstmt.setString(1, student.getName());         pstmt.setInt(2, student.getSex());         pstmt.setString(3, student.getPhone());         pstmt.setString(4, student.getBirth());         pstmt.setString(5, student.getSid());         pstmt.execute();         pstmt.close();         con.close();     }     /**     * 删除指定学号的学生     */     public void deleteStudent(String sid) throws Exception {         Statement stmt = con.createStatement();         stmt.execute("delete from student where sid='" + sid + "'");         stmt.close();         con.close();     }     /**     * 返回给定学号的学生的信息,返回的是值对象     */     public Student getStudentInfo(String sid) throws Exception {         Statement stmt = con.createStatement();         ResultSet rst = stmt.executeQuery("select * from student where sid='"                 + sid + "'");         Student student = null;         while (rst.next()) {             student = new Student();             student.setSid(rst.getString("sid"));             student.setName(rst.getString("name"));             student.setSex(rst.getInt("sex"));             student.setPhone(rst.getString("phone"));             student.setBirth(rst.getString("birth"));         }         stmt.close();         con.close();         return student;     }     public synchronized sta
本文档为【JDBC连接数据库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_487883
暂无简介~
格式:doc
大小:136KB
软件:Word
页数:0
分类:工学
上传时间:2012-03-30
浏览量:10