JdbcUtil
package jdbcConnection; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; /** * jdbc工具类 * * @author happyqing * */ public class JdbcUtil { private static Properties env = new Properties(); static { try { //JdbcUtil.class.getResourceAsStream("/env.properties"); // /com/cici/conf/env.properties InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream("env.properties"); env.load(is); is.close(); } catch (Exception e) { e.printStackTrace(); } } private static final ThreadLocal<Connection> tl = new ThreadLocal<Connection>(); public static Connection getConnection() { Connection conn = tl.get(); try { if (conn == null) { Class.forName(env.getProperty("jdbc.driverClassName")); conn = DriverManager.getConnection(env.getProperty("jdbc.url"), env.getProperty("jdbc.username"), env.getProperty("jdbc.password")); tl.set(conn); } // 设置不自动提交 conn.setAutoCommit(false); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 创建PreparedStatement * * @param conn * @param sql * @return */ public static PreparedStatement getPreparedStatement(Connection conn, String sql) { PreparedStatement psmt = null; if (conn != null) { try { psmt = conn.prepareStatement(sql); } catch (Exception e) { e.printStackTrace(); } } return psmt; } /** * 释放资源 */ public static void close(ResultSet rs, Statement stm, Connection conn) { if (rs != null) try { rs.close(); } catch (Exception e) { e.printStackTrace(); } if (stm != null) try { stm.close(); } catch (Exception e) { e.printStackTrace(); } if (conn != null) try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } // 测试 public static void main(String[] args) { Connection conn = JdbcUtil.getConnection(); System.out.println(conn); } }
env.properties
jdbc.driverClassName= oracle.jdbc.driver.OracleDriver jdbc.url= jdbc:oracle:thin:@192.168.1.186:1521:orcl jdbc.username=xxx jdbc.password=xxx
crud
package jdbcConnection; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import utils.JdbcUtil; public class CrudTest { private static void add() throws SQLException { // TODO Auto-generated method stub Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtil.getConnection(); String sql = "insert into [user](name,password,email,age,birthday,money) values(?,?,?,?,?,?)"; ps = conn.prepareStatement(sql); ps.setString(1, "psName"); ps.setString(2, "psPassword"); ps.setString(3, "jkjs@126.com"); ps.setInt(4, 23); ps.setDate(5, new java.sql.Date(new java.util.Date().getDate())); ps.setFloat(6, 2344); ps.executeUpdate(); } finally { JdbcUtil.close(rs, ps, conn); } } private static void get() throws SQLException { // TODO Auto-generated method stub Connection conn=null; PreparedStatement ps =null; ResultSet rs = null; try { conn= JdbcUtil.getConnection(); String sql = "select id,name,password,email,birthday,money from [user]"; ps = conn.prepareStatement(sql); rs= ps.executeQuery(); while(rs.next()){ int id= rs.getInt("id"); String name =rs.getString("name"); String pass=rs.getString("password"); String email = rs.getString("email"); Date birthday =rs.getDate("birthday"); float money= rs.getFloat("money"); System.out.println("id是:"+id+"姓名是: "+name+" 密码是:"+pass+"邮箱是:" +email+"生日是: "+birthday+"工资是"+money); } } finally{ JdbcUtil.close(rs, ps, conn); } } private static void update() throws SQLException { // TODO Auto-generated method stub Connection conn=null; PreparedStatement ps =null; ResultSet rs = null; try { conn= JdbcUtil.getConnection(); String sql = "update [user] set name='lucy',password='123',money=5000 where id=1"; ps= conn.prepareStatement(sql); ps.executeUpdate(); } finally{ JdbcUtil.close(rs, ps, conn); } } private static void delete() throws SQLException { // TODO Auto-generated method stub Connection conn=null; PreparedStatement ps =null; ResultSet rs = null; try { conn= JdbcUtil.getConnection(); String sql = "delete from [user] where id=1"; ps= conn.prepareStatement(sql); ps.executeUpdate(); } finally{ JdbcUtil.close(rs, ps, conn); } } }
Jdbc事务管理
模拟银行取帐
TransferTest.java
package test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import util.JdbcUtil; public class TransactionTest { public static void main(String[] args)throws SQLException { transferTest(); } public static void transferTest()throws SQLException{ int id1 =3; float m1= 100.0f; int id2 = 4; transfer2(id1,m1,id2); } public static boolean transfer2(int id1,float m1,int id2)throws SQLException{ boolean flag = false; Connection conn =null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtil.getConnection(); conn.setAutoCommit(false); String sql = "update [user] set money = money=? where id = ?"; ps= conn.prepareStatement(sql); ps.setFloat(1, m1); ps.setInt(2, id1); ps.executeUpdate(); String sql1 = "update [user] set money = money+? where id = ?"; ps= conn.prepareStatement(sql); ps.setFloat(1, m1); ps.setInt(2, id2); ps.executeUpdate(); conn.commit(); } catch (SQLException e) { // TODO 自动生成 catch 块 conn.rollback(); throw e; }finally{ JdbcUtil.close(rs, ps, conn); } return flag; } }
java读取properties文件
http://happyqing.iteye.com/admin/blogs/1966014
JDBC连接各种数据库方法
http://happyqing.iteye.com/admin/blogs/1966028
使用JDBC进行批处理
http://happyqing.iteye.com/admin/blogs/1965951
相关推荐
java中的数据库连接方法,包含建表、删除、修改、添加等操作
java jdbc操作数据库 static{ try{ String driverName = "oracle.jdbc.driver.OracleDriver"; Class.forName(driverName); }catch(Exception e){ e.printStackTrace(); } }
一个已经封装了连接池(可以自定义连接池大小)的jdbc工具类,代码简单清晰,适合java初学者,以便更好更快的熟悉数据库操作。
Java-JDBC【源码】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况 1.数据库连接池 2.Durid介绍(官方文档) 3.编码,问题,常规并发操作 3.1.JDBCUtil....
基于反射的JDBCUtil的工具类,通过配置文件加载数据库连接资源,实现简单的CRUD操作
java_JDBC_AutoClose_自动关闭的JDBCUtil,效果高于传统JDBC,jdbc连接数据库进行带参数更新操作,mysql update语句,数据库课程设计mysql,jdbc优化
本资源提供了jdbcUtil工具类及普通、c3p0、dbcp和druid获得连接的方法。提供了java对数据库增删改查的baseDAO,结合customer类进行实例操作。
在使用数据库的过程中,我们有很多操作都是重复的,比如连接数据库、关闭资源等等,其实在数据库做Java开发过程中,除了我们每次的SQL语言不同外,其他的大部分操作都是重复的,这里简单封装了两个类 一、JDBC工具类...
JDBCUtil 类和 jdbc.properties ,后者为mysql数据库root用户账户信息、数据库驱动以及数据库地址的配置信息。前者是数据库的连接获取以及关闭流方法。 (2)testing包: Info负责信息的描述 Gui类负责用户界面以及...
4、tryCommit()负责对有效的“提交”操作,进一步处理,并将有效的操作结果时时保存到数据库,并更新数据库原有信息 //本程序用到的知识点:数据库连接JDBC;SQL建表、插入输入、动态查询;图形用户界面的产生以及...
使用配置文件配置SQL的连接和数据库基本操作,自己写的,适合初学者使用
按照之前的步骤的话,我们可以发现有好多的步骤都是重复操作的,我们没有必要重复的书写,为了省事,我们可以把这些重复使用的部分给封装起来。 可以封装的步骤: 1. 数据库连接对象java.sql.Connection获取过程 2. ...
进行数据库的基础操作,获取一个连接操作,释放连接操作如果要更改数据库需要修改的部分有: private static String url = " jdbc:oracle:thin:@127.0.0.1:1521:xe " ; private static String user = " BAIKE " ; ...
此类是针对执行查询语句返回的ResultSet结果集进行设计的,旨在方便用户将数据库的内容转化为Vector、ArrayList容器的操作过程,此类中提供了多种方法从而简化了对ResultSet结果集的转化成本,结合系统提供的...
这个工具可以实现图形化操作oracle数据库 要设置classpath包含oracle驱动路径 这个sqlplus是自动提交的,运行sqlplus.bat。 数据库地址请修改JdbcUtil.java文件
数据库操作部分 entity层 DAO层 implement层 jdbcutil工具类 与前端的操作部分 servlet层 filter层 单元测试 前端 全局页面 登录页面 找回密码页面 修改密码页面 学生页面 教师页面 教务员页面 管理员页面 - 不懂...
1、首先使用sql包中的方法自行编写一个JdbcUtil工具类,实现对mysql的连接与关闭资源。...从而实现使用JDBC操作Mysql数据库,对其进行增删改查(几个独立的方法可用)。3、测试使用JUnit进行单元测试。
通过Dao / CrudDao可以完成许多数据库操作,而无需编写单个数据访问方法。 使用sql语句 String query = " SELECT first_name, last_name fROM account WHERE first_Name = ? " ; Optional< Account> account = ...