2014.09.17 周四-jdbc增删改查-javabean、jsp标签
来源:互联网 发布:toupview显微图像软件 编辑:程序博客网 时间:2024/05/18 18:52
一、程序详解
1、Connection
- createStatement
- prepareStatement
- prepareCall
- setAutoCommit
- commit
- rollback
2、Statement
- executeQuery查询
- executeUpdate增删改
- excute都可以,但是返回的是boolean。
- 批处理:
- execute
- addBatch
- executeBatch
3、ResultSet
- 获取数据:getObject,getString
- 对数据集进行滚动的方法:
- next
- previous
- absolute,定位到某一条
- beforFirst
- afterLast
4、常用数据类型转换表
5、释放资源
- Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet, Statement和Connection对象。
- 特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。
- 为确保资源释放代码能运行,资源释放代码也一定要放在finally语句中。(确保这个连接还给了数据库。就算try里面有问题,finally里面的代码也会执行)
- 抛异常好麻烦,都不知道抛到哪里去了?都不知道关了资源和没关资源怎么看?
二、使用jdbc对数据库增删改查
1、代码
- 工具类。增删改查共性的方法:连接和释放资源。JdbcUtils.java:
package cn.itcast.utils;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class JdbcUtils {private static String driver = null;private static String url = null;private static String username = null;private static String password = null;static {try {Properties prop = new Properties();InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");prop.load(in);driver = prop.getProperty("driver");url = prop.getProperty("url");username = prop.getProperty("username");password = prop.getProperty("password");Class.forName(driver);} catch (Exception e) {System.out.println("...error");//throw new ExceptionInInitializerError(e);}}public static Connection getConnection() throws SQLException, ClassNotFoundException {return DriverManager.getConnection(url, username, password);}public static void release(Connection conn, Statement st, ResultSet rs) {if(rs != null) {try {rs.close();} catch (Exception e) {e.printStackTrace();} rs = null;}if(st != null) {try {st.close();} catch (Exception e) {e.printStackTrace();} }if(conn != null) {try {conn.close();} catch (Exception e) {e.printStackTrace();} }}}
- src目录下:db.properties:#注释
driver = com.mysql.jdbc.Driverurl = jdbc:mysql://localhost:3306/day14username = rootpassword = root
- 增删改查。Demo4.java:
package cn.itcast.demo;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.junit.Test;import cn.itcast.utils.JdbcUtils;//使用jdbc对数据库增删改查public class Demo4 {@Testpublic void insert() {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtils.getConnection();st = conn.createStatement();String sql = "insert into user(id, name, password, email, birthday) values(12, 'zhousan', '123456','zsan@sina.com', '1992-10-1')"; //注意时间字段的写法哦。int num = st.executeUpdate(sql);if(num > 0) {System.out.println(num);System.out.println("插入成功!");} else {System.out.println(num);System.out.println("插入失败!");}} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();} finally {JdbcUtils.release(conn, st, rs);}}@Testpublic void delete() {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtils.getConnection();st = conn.createStatement();String sql = "delete from user where id = 8";int num = st.executeUpdate(sql);if(num > 0) {System.out.println(num);System.out.println("删除成功!");} else {System.out.println(num);System.out.println("删除失败!");}} catch (Exception e) {e.printStackTrace();} finally {JdbcUtils.release(conn, st, rs);}}@Testpublic void update() {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtils.getConnection();st = conn.createStatement();String sql = "update user set name='heihei',id=10 where id=6";int num = st.executeUpdate(sql);if(num > 0) {System.out.println(num);System.out.println("更新成功!");} else {System.out.println(num);System.out.println("更新失败!");}} catch (Exception e) {e.printStackTrace();} finally {JdbcUtils.release(conn, st, rs);}}@Testpublic void find() {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtils.getConnection();st = conn.createStatement();String sql = "select id, name, password, email, birthday from user where id=3";rs = st.executeQuery(sql);if(rs.next()) {System.out.println("id=" + rs.getInt("id"));System.out.println("id=" + rs.getString("name"));}} catch (Exception e) {e.printStackTrace();} finally {JdbcUtils.release(conn, st, rs);}}public static void main(String[] args) {Demo4 d4 = new Demo4();d4.delete();}}
三、实例练习-用户注册和登录
1、把javabean看了来
四、JavaBean
1、什么是javaben
- JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:
这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
虽然Sun公司在定义JavaBean规范时,允许Java开发人员把JavaBean设计得可以像Swing组件一样功能强大,但在实际的J2EE开发中,通常只使用到以上JavaBean最基本的特性。
JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。
2、JSP标签
- 在JSP中使用JavaBean :
JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:
<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。
<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。 - <jsp:useBean>标签:
<%@page import="cn.itcast.Person" %>
<body>
<!-- class属性必须指定bean的完整类名 -->
<jsp:useBean id="person" class="cn.itcast.Person" scope="page" />
<%
System.out.println(person.getName() + "....name");
%>
</body> - 带标签体的<jsp:useBean>标签 :
<body>
<%
pageContext.setAttribute("person", new Person());
%>
<!-- 标签体内容只在实例化bean时执行 -->
<jsp:useBean id="person" class="cn.itcast.Person" scope="page" >
xxx
</jsp:useBean>
<%
System.out.println(person.getName() + "....name");
%>
</body> - <jsp:setProperty>标签 :
<body><jsp:useBean id="person" class="cn.itcast.Person" scope="page" /><!-- jsp:setProperty标签在工作时,它会自动把字符串转成八种基本数据类型 --> <!-- 但是jsp:setProperty标签对于复杂类型无法自动进行转换 --><!-- 所以类型要一致哟 --><jsp:setProperty name="person" property="name" value="zhangsan" /><jsp:setProperty name="person" property="age" value="12" /><jsp:setProperty name="person" property="birthday" value="<%=new Date() %>" /><!-- jsp:setProperty标签可以使用请求参数为bean的属性赋值 --><!-- 访问http://localhost:8080/day09_JavaBean/2.jsp?name=zhangliu --><jsp:setProperty name="person" property="name" param="name" /><!-- jsp:setProperty标签用所有的请求参数为bean的属性赋值 --><!-- http://localhost:8080/day09_JavaBean/2.jsp?name=zhangliu&age=21&password=123456 --><jsp:setProperty name="person" property="*" /><jsp:getProperty name="person" property="name" /><%System.out.println(person.getName());System.out.println(person.getAge());System.out.println(person.getPassword());%></body>
- <jsp:getProperty>标签:
<!-- 会在网页显示 -->
<jsp:getProperty name="person" property="name" />
如果一个JavaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。 所以开发的时候,用这个取数据,要先做判断的。 - Person.java:
package cn.itcast;import java.util.Date;public class Person {private String name;private String password;private int age;private Date birthday;public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
0 0
- 2014.09.17 周四-jdbc增删改查-javabean、jsp标签
- jsp+javabean+servlet实现增删改查
- [JSP&JDBC]连接数据库DAO增删查改+JavaBean+分页显示实例
- 基于jsp+javabean+servlet+mongodb 增删改查
- Jdbc 增删改查
- jdbc增删改查
- JDBC 增删改查
- jdbc增删改查
- jdbc增删查改
- JDBC 增删改查
- jdbc:增删改查
- jdbc---增删改查
- jqGrid(struts2+jdbc+jsp)增删改查的例子
- jsp+servlet+jdbc实现对数据库的增删改查
- jsp+servlet+jdbc增删改查功能实现(一)
- jsp+servlet+jdbc增删改查功能实现(二)
- jsp+servlet+jdbc实现对数据库的增删改查
- Struts2+JSP+JDBC实现学生信息的增删改查
- 【转载】Discuz论坛结构
- 棵汛粟重奥蓉晌认疚记猜脑
- OUT_SMS_ONE
- 吭假悼赏碳眯即己舅哨守技
- ZOJ 2971 && HNUOJ 16490 Give Me the Number
- 2014.09.17 周四-jdbc增删改查-javabean、jsp标签
- 单例模式解释
- 油戳吃狡菊仙患桶德人傲钦
- Oracle 12c RAC for AIX7.1(三)系统参数
- ORACLE 参数文件介绍
- Best Time to Buy and Sell Stock
- 谫兴壳湛蠢临霖缕展袄袄男
- CF437div D 贪心+并查集
- oncreatedialog()与showdialog()的使用