- 浏览: 19314 次
- 性别:
- 来自: 北京
文章分类
最新评论
1 JdbcUtils类:配置数据库的相关信息。
2 JdbcUtilsSing类:该类是JdbcUtils类的单例实现形式,与JdbcUtils类互斥使用。
3 Base类:使用封装类的一个例子。
4 CRUB类:使用封装类完成最简单的增删查改工作。
5 SQLInject:使用PreparedStatement代替Statement进行操作。
注:尽量使用PreparedStatement,因为速度比较快;当有字符串类型时建议使用PreparedStatement。
5 DateTest类:处理数据库中时间这种方式。
由于在Java中java.until中有Data类、java.sql中也有Date这个类,我们在程序中只需要和java.util进行打交道,因此优先使用java.util中的Date类,java.sql中的Date类是java.util中的Date类的子类,只在和数据库进行交互时才使用,必要时进行转换即可。java.util中的Date类是完整的时间(包括时分秒),而java.sql中的Date类则知道日期就结束了。
6 ClobTest类:访问大段文本数据实例。
在实例中有两种方式对大段文本数据进行存取,建议使用String类型,因为更易于理解。
6 BlobTest类:访问二进制类型的数据。
注意:二进制类型的数据包括图片等,而采用这种方式的时候就不可以使用字符进行处理了,当长度不够时采用更大类型的二进制类型。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public final class JdbcUtils { private static String url = "jdbc:mysql://10.105.43.220:3306/jdbc"; private static String user = "sa"; private static String password = "123456"; private JdbcUtils() { } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
2 JdbcUtilsSing类:该类是JdbcUtils类的单例实现形式,与JdbcUtils类互斥使用。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public final class JdbcUtilsSing { private static String url = "jdbc:mysql://10.105.43.220:3306/jdbc"; private static String user = "sa"; private static String password = "123456"; // private static JdbcUtilsSing instance = new JdbcUtilsSing(); private static JdbcUtilsSing instance = null; private JdbcUtilsSing() { } public static JdbcUtilsSing getInstance() { if (instance == null) { synchronized (JdbcUtilsSing.class) { if (instance == null) { instance = new JdbcUtilsSing(); } } } return instance; } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
3 Base类:使用封装类的一个例子。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Base { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { template(); } /** * @throws Exception */ static void template() throws Exception { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select * from user"); // 5.处理结果 while (rs.next()) { // 参数中的1,2,3,4是指sql中的列索引 System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4)); } } finally { JdbcUtils.free(rs, st, conn); } } }
4 CRUB类:使用封装类完成最简单的增删查改工作。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class CRUD { /** * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { // create(); read(); //update(); //delete(); } static void delete() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); String sql = "delete from user where id>4"; // 4.执行语句 int i = st.executeUpdate(sql); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, st, conn); } } static void update() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); String sql = "update user set money=money+10 "; // 4.执行语句 int i = st.executeUpdate(sql); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, st, conn); } } static void create() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); String sql = "insert into user(name,birthday, money) values ('name1', '1987-01-01', 400) "; // 4.执行语句 int i = st.executeUpdate(sql); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, st, conn); } } static void read() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select id, name, money, birthday from user"); // 5.处理结果 while (rs.next()) { System.out.println(rs.getObject("id") + "\t" + rs.getObject("name") + "\t" + rs.getObject("birthday") + "\t" + rs.getObject("money")); } } finally { JdbcUtils.free(rs, st, conn); } } }
5 SQLInject:使用PreparedStatement代替Statement进行操作。
注:尽量使用PreparedStatement,因为速度比较快;当有字符串类型时建议使用PreparedStatement。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SQLInject { /** * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { read("name1"); } static void read(String name) throws SQLException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "select id, name, money, birthday from user where name=?"; ps = conn.prepareStatement(sql); ps.setString(1, name); // 4.执行语句 rs = ps.executeQuery(); // 5.处理结果 while (rs.next()) { System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getDate("birthday") + "\t" + rs.getFloat("money")); } } finally { JdbcUtils.free(rs, ps, conn); } } }
5 DateTest类:处理数据库中时间这种方式。
由于在Java中java.until中有Data类、java.sql中也有Date这个类,我们在程序中只需要和java.util进行打交道,因此优先使用java.util中的Date类,java.sql中的Date类是java.util中的Date类的子类,只在和数据库进行交互时才使用,必要时进行转换即可。java.util中的Date类是完整的时间(包括时分秒),而java.sql中的Date类则知道日期就结束了。
package cn.itcast.jdbc; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; public class DateTest { static void create(String name, Date birthday, float money) throws SQLException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into user(name,birthday, money) values (?, ?, ?) "; ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setDate(2, new java.sql.Date(birthday.getTime())); ps.setFloat(3, money); // 4.执行语句 int i = ps.executeUpdate(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } }
6 ClobTest类:访问大段文本数据实例。
在实例中有两种方式对大段文本数据进行存取,建议使用String类型,因为更易于理解。
package cn.itcast.jdbc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.sql.Clob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ClobTest { /** * @param args * @throws IOException * @throws SQLException */ public static void main(String[] args) throws SQLException, IOException { //create(); read(); } static void read() throws SQLException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select bigtext from clobtest"); // 5.处理结果 while (rs.next()) { //Clob clob = rs.getClob(1); //Reader reader = clob.getCharacterStream(); // reader = rs.getCharacterStream(1); String s = rs.getString(1); File file = new File("JdbUtils_bak.java"); Writer writer = new BufferedWriter(new FileWriter(file)); //char[] buff = new char[1024]; //for (int i = 0; (i = reader.read(buff)) > 0;) { // writer.write(buff, 0, i); //} writer.write(s); writer.close(); //reader.close(); } } finally { JdbcUtils.free(rs, st, conn); } } static void create() throws SQLException, IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into clobtest(bigtext) values (?) "; ps = conn.prepareStatement(sql); File file = new File("src/cn/itcast/jdbc/JdbcUtils.java"); //Reader reader = new BufferedReader(new FileReader(file)); BufferedReader reader = new BufferedReader(new FileReader(file)); //ps.setCharacterStream(1, reader, (int) file.length()); // 读取一行 String line = null; StringBuffer strBuffer = new StringBuffer(); while ((line = reader.readLine()) != null) { strBuffer.append(line); strBuffer.append("\n"); } ps.setString(1, strBuffer.toString());//一定要注意:可以使用String类型处理MySQL数据库中的text类型,不比和上面这么麻烦。 // 4.执行语句 int i = ps.executeUpdate(); reader.close(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } }
6 BlobTest类:访问二进制类型的数据。
注意:二进制类型的数据包括图片等,而采用这种方式的时候就不可以使用字符进行处理了,当长度不够时采用更大类型的二进制类型。
package cn.itcast.jdbc; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class BlobTest { /** * @param args * @throws IOException * @throws SQLException */ public static void main(String[] args) throws SQLException, IOException { //create(); read(); } static void read() throws SQLException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select bigbit from blobtest"); // 5.处理结果 while (rs.next()) { // Blob blob = rs.getBlob(1); // InputStream in = blob.getBinaryStream(); InputStream in = rs.getBinaryStream("bigbit"); File file = new File("Desert_bak.jpg"); OutputStream out = new BufferedOutputStream( new FileOutputStream(file)); byte[] buff = new byte[1024]; for (int i = 0; (i = in.read(buff)) > 0;) { out.write(buff, 0, i); } out.close(); in.close(); } } finally { JdbcUtils.free(rs, st, conn); } } static void create() throws SQLException, IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into blobtest(bigbit) values (?) "; ps = conn.prepareStatement(sql); File file = new File("Desert.jpg"); InputStream in = new BufferedInputStream(new FileInputStream(file)); ps.setBinaryStream(1, in, (int) file.length()); // 4.执行语句 int i = ps.executeUpdate(); in.close(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } }
相关推荐
自己整理的jdbc操作代码(内含数据库代码),供正在学习的朋友们使用,实现了crud,亲测可用。帮助文档可参考:http://blog.csdn.net/qq_19558705,如有问题,留言。
String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://192.168.1.112:3306/linksystem"; String user = "root"; String password = "blog.micxp.com"; try { Class.forName(driver); ...
mysql 数据库 连接 驱动 jdbc 仅供学习使用 如果喜欢可以到官网下载
JDBC+mysql 学习示例
JDBC程序备份 1.MYSQL是学习JDBC时候的程序备份 2.guigu是尚硅谷教程里面自带的程序
初入门想学习好jdbc的,可以下载去看看,帮助很大!
JDBC 相关jar包 --- mysql-connector-java-5.1.22-bin.jar(MySQL) Jar包下载: mysql-connector-java-5.1.22-bin.jar (见附件) JAR包添加: 1. 把JAR包放在水晶报表CrystalReport的目录下面 C:\Program ...
就是java连接MySQL需要的那个jar包,5积分意思一下。里面有一个笔记(笔记版权归原作者所有仅用来学习,侵删)不想花积分可以去官网下:https://dev.mysql.com/downloads/file/?id=506032
韩顺平j2ee-JDBC与MySQL学习笔记
封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...
使用java通过jdbc访问mysql数据库,并完成简单的连接登录,增删改查等功能,适合初学者进行参考学习的小demo代码。
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
MySQL数据库文件jdbc.sql:用于MySQL学习笔记(二)的测试数据库,下载后用导入MySQL即可使用,学习时配套使用。
学习JDBC连接MySQL时产生的代码
python 链接 mysql 需要的驱动 最近学习python 用到此工具 分享一下
jsp实现servlet+jdbc+mysql+ajax的注册,登陆,修改,查询的简单demo。对于学习servlet jdbc ajax mysql 有一定的帮助。
此资源是我从网上下载的视频附赠的,特分享出来,与广大学习者共睹
Mysql安装文件和mysql jdbc 驱动.给学习java的朋友们准备的.
自己学习时候写的, 下载了注意添加Jar包就OK. 数据库很简单, 看User类就OK. 连数据库 自己修改一下DBConn类里面的 连接地址.
Oracle、Mysql和JDBC学习