- 浏览: 433523 次
文章分类
最新评论
java 从零开始,学习笔记之基础入门<JDBC>(二十三)
JDBC
JDBC基本连接知识:
没有使用加工厂的链接
(没有使用加工厂的链接)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Conn { public static void main(String[] args) { // addUser("cw", "77777777777"); // selectAll(); //deleteUserById(5); updateUserById(2,"神马","都是浮云"); } public static void selectAll() { Connection conn = null; try { // forName方法写上驱动类的完整路径 // 表示的是一个类加载器通过包名+类名来加载对应的类 // 类加载器会通过反射来加载字符串指定的类的实例 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 创建一个数据库连接 String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=sofeem"; conn = DriverManager.getConnection(url, "sa", "1234"); System.out.println(conn); // 可以通过创建的conn去访问数据库建立了程序和数据库之间的连接 // 查询tb_user表中的所有信息 // 创建一个statement对象将sql语句发送到数据库执行 Statement st = conn.createStatement(); String sql = "select * from tb_user"; // 执行查询返回执行之后的结果集创建结果集的对象来接收返回回来的多条数据 // 如果是查询操作,则调用executeQuery 方法 // 如果是增加、删除、修改操作则调用executeUpdate()方法 ResultSet rs = st.executeQuery(sql); // 从结果集中取出对应的值 while (rs.next()) { System.out.println("用户id:" + rs.getString("uid")); System.out.println("用户姓名:" + rs.getString("uname")); System.out.println(rs.getString("upass")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 往用户表中增加一条记录 public static void addUser(String name, String pass) { Connection conn = null; Statement st = null; PreparedStatement ps = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=sofeem", "sa", "1234"); ps = conn .prepareStatement("insert into tb_user(uname,upass) values(?,?)"); // 给问好赋值 ps.setString(1, name); ps.setString(2, pass); // 执行 ps.executeUpdate(); // 增加完成就完了,没有结果集的返回 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 根据id进行删除一条记录 public static void deleteUserById(int id) { Connection conn = null; PreparedStatement ps = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=sofeem", "sa", "1234"); // 创建sql语句预编译对象 String sql = "delete from tb_user where uid=?"; ps = conn.prepareStatement(sql); // 给问好赋值 ps.setInt(1, id); ps.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 根据uid来更新用户名和密码 public static void updateUserById(int id, String name, String pass) { Connection conn = null; PreparedStatement ps=null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://192.168.0.179:1433;databaseName=sofeem", "sa", "1234"); String sql="update tb_user set uname=?,upass=? where uid=?"; ps=conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2, pass); ps.setInt(3, id);
ps.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { ps.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // PreparedStatement 与 Statement的区别? /* * 1 Ps与s 都是对sql语句到数据库中执行返回对应的数据,但是 Ps 有对sql语句进行预编译的过程,而s是直接执行 * 2 Ps执行sql语句的效率高于s执行sql语句的效率 * 如果在多次执行同一个操作的时候,那么Ps处理sql语句只需要编译一次,第二次处理sql语句就直接使用已经编译好的sql语句 * 如果使用的是s,则每次处理相同的操作的时候,每次都需要对sql语句进行编译再到数据库中执行 * 3 Ps的安全性高于s * 正是因为Ps能够对sql语句进行预编译,所以它能够防止sql语句注入攻击,而s是直接执行sql语句,没有预编译过程 * 则不能够防止sql注入 * * */ }
|
使用加工厂的链接
(使用加工厂的链接) package com.ibm.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class CopyOfConn { public static void main(String[] args) { // addUser("aaaa", "bbbbbbbbbb"); selectAll(); // deleteUserById(5); // updateUserById(2,"神马","都是浮云"); } public static void selectAll() { Connection conn = null; try { conn=ConnFactory.getConn(); Statement st = conn.createStatement(); String sql = "select * from tb_user"; ResultSet rs = st.executeQuery(sql); while (rs.next()) { System.out.println("用户id:" + rs.getString("uid")); System.out.println("用户姓名:" + rs.getString("uname")); System.out.println(rs.getString("upass")); } } catch (SQLException e) { e.printStackTrace(); } finally { ConnFactory.closeConn(conn,null); } } // 往用户表中增加一条记录 public static void addUser(String name, String pass) { Connection conn = null; PreparedStatement ps = null; try { conn=ConnFactory.getConn(); ps = conn .prepareStatement("insert into tb_user(uname,upass) values(?,?)"); // 给问好赋值 ps.setString(1, name); ps.setString(2, pass); // 执行 ps.executeUpdate(); // 增加完成就完了,没有结果集的返回 }catch (SQLException e) { e.printStackTrace(); } finally { ConnFactory.closeConn(conn, ps); } } // 根据id进行删除一条记录 public static void deleteUserById(int id) { Connection conn = null; PreparedStatement ps = null; try { conn=ConnFactory.getConn(); String sql = "delete from tb_user where uid=?"; ps = conn.prepareStatement(sql); // 给问好赋值 ps.setInt(1, id); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 ConnFactory.closeConn(conn, ps); } } // 根据uid来更新用户名和密码 public static void updateUserById(int id, String name, String pass) { Connection conn = null; PreparedStatement ps=null; try { conn =ConnFactory.getConn(); String sql="update tb_user set uname=?,upass=? where uid=?"; ps=conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2, pass); ps.setInt(3, id);
ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally{ ConnFactory.closeConn(conn, ps); } } // PreparedStatement 与 Statement的区别? /* * 1 Ps与s 都是对sql语句到数据库中执行返回对应的数据,但是 Ps 有对sql语句进行预编译的过程,而s是直接执行 * 2 Ps执行sql语句的效率高于s执行sql语句的效率 * 如果在多次执行同一个操作的时候,那么Ps处理sql语句只需要编译一次,第二次处理sql语句就直接使用已经编译好的sql语句 * 如果使用的是s,则每次处理相同的操作的时候,每次都需要对sql语句进行编译再到数据库中执行 * 3 Ps的安全性高于s * 正是因为Ps能够对sql语句进行预编译,所以它能够防止sql语句注入攻击,而s是直接执行sql语句,没有预编译过程 * 则不能够防止sql注入 * * */
}
|
DTO_DAO_实现增删改查
|
事务提交
|
相关推荐
<br><br>此为第三版Java Study Note Rev.3 (080603)<br><br>1).增加了学习笔记下半部。<br><br>在转换的过程中可能存在其他失误,请见谅,如果有好的见解请登陆我的博客:<br><br>...
1 应用Struts的网站建设 <br><br> <br> <br>Java基础<br> 1 20个Java基础Tips <br> 2 abstract,static,final修饰符 <br> 3 ChinaUnix.net Java精华贴 <br> 4 ANT学习笔记 <br> 5 极度性能调整 <br><br> <br>FAQs<br>...
Java JDK 6学习笔记 配套简体PPT<br>包含热卖书籍《Java JDK 6学习笔记》的精华内容。<br>此课件在手,可以剩下买书的钱哦。<br>最新的JDK6的资料。一定要下来看看哦。<br>里面有21章PPT,内容充实,例子多。<br>...
java学习笔记 从零开始的老师教程 jave笔记,喜欢学校jave的人
<br><br>此为第二版Java Study Note Rev.2 (080411)<br>1).修改了部分名词在简体版种的名称:如:类别 -> 类 ;列举 -> 枚举 …<br>2).修改了部分在txt中无法显示的字符:如:主文件名前的星号在txt中无法正常...
正则表达式<br>lucene索引合并<br>探查Weblogic JDBC Multipool 问题 <br>struts通用Exception处理 <br>Grails中默认数据库HSQLDB点滴<br>从request获取各种路径总结<br>DIV实现的表格自动伸张与收缩<br>java 邮件...
[目录]Java学习笔记(推荐) <br> 6. [目录]JDBC文档 <br> 7. [目录]RMI 文档 <br> 2. [目录]Java资源(文档-书籍-下载-注册码) <br> 1. [目录]License 和注册码 <br> 2. [目录]好书推荐 <br> 3. [目录]关于Java的...
此份所有内容皆出自我的偶像:林信良(良葛格)的Java 学习笔记,网址:<br>http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/JavaGossip.htm<br>本人只是将其整理成适合手机阅读的格式。<br>此为第一版Java ...
MLDN框架笔记大全<br>JSP+JDBC_假分页 <br>02 JSP+JDBC_真分页(基于MySQL数据库分页) <br>03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) <br>04 Struts入门 <br>05 使用Struts + DAO完成用户登陆 <br>06 Struts标签-...
Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式
-(1)<br>事半功倍之Javascript--(2)<br>事半功倍之Javascript--(3)<br>事半功倍之Javascript--(4)<br>JavaScript教程--从入门到精通--(1)<br>JavaScript教程--从入门到精通--(2)<br>JavaScript教程--从入门到精通--...
JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
JAVA,C++软件工程师学习的笔记(多),包括:<br>C++.doc<br>Core Java笔记MS Word版.doc<br>CoreJavaNoteBook.doc<br>EJB笔记.doc<br>Hibernate.doc<br>JDBC.doc<br>JSP笔记.doc<br>Servlet.doc<br>Spring笔记.doc...
java笔面试题1-6章 Java相关课程系列笔记之一Java学习...Java相关课程系列笔记之十三Struts2学习笔记 Java相关课程系列笔记之十四Hibernate学习笔记 Java相关课程系列笔记之十五Spring学习笔记 资源都已上传,自己下载
<br>主要内容:<br>1:基本sql语句,sqlserver和mysql的操作<br>2:java基础,从最基本的数据类型到数据结构,容器线程。<br>3:jsp实用代码,以及老师写的BaseDAO!反射机制,基本的rmi等<br>4:还有struts实用程序...
本文档为详细笔记,doc格式,共173页。包含内容: Unix,Java 基础,数据库(Oracle jdbc Hibernate pl/sql),web,JSP,Struts,Ajax,Spring,Ejb,Java和模式。另附学习视频链接地址,欢迎下载。
思科CNNA中文读书笔记 <br>有以下内容<br>第一章:Internetworking <br>第二章:Internet Protocols<br>第三章:IP Subnetting and Variable Length Subnet Masks(VLSM)<br>第四章:Introduction to the Cisco IOS...