文档章节

java web jdbc操作总结

抢地主
 抢地主
发布于 2017/02/26 16:38
字数 850
阅读 30
收藏 0

1.直接上代码

package com.aslan.jdbczongjie;

import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Demo1 {
	
	/*使用最原始的方式来建立连接*/
	@Test
	public void fun1()
	{
		Connection conn = null;
		PreparedStatement preparedStatement = null;
		
		try {
			
			//1.加载mysql驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			//2.生成Connection对象		
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
			System.out.println(conn);
			
			//3.建立sql模版
			String sql = "insert into stu values(?,?)";
			
			//4.创建PreparedStatement
			preparedStatement = conn.prepareStatement(sql);
			preparedStatement.setString(1, "1xiaoliba1");
			preparedStatement.setDouble(2, 101);
			
			//5.执行sql语句
			int result =  preparedStatement.executeUpdate();
			
			System.out.println(result);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally
		{
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
			if(preparedStatement != null)
			{
				try {
					preparedStatement.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
	
	/*
	 * 使用配置文件来配置参数
	 * */
	@Test
	public void fun2() throws Exception
	{
		Connection conn = null;
		PreparedStatement preparedStatement = null;
		
		//1.创建props对象,加载参数
		Properties props = new Properties();
		InputStream in = this.getClass().getClassLoader().getResourceAsStream("dbconfig.properties");		
		props.load(in);
		
		//2.加载驱动
		Class.forName(props.getProperty("driverName"));
		
		//3.获取Connection
		conn = DriverManager.getConnection(props.getProperty("jdbcUrl"),props.getProperty("user"),
											props.getProperty("password"));
		
		//4.创建PreparedStatement
		String sql = "insert into stu values(?,?)";
		preparedStatement = conn.prepareStatement(sql);
		preparedStatement.setString(1, "jiajia");
		preparedStatement.setDouble(2, 11.1);
		
		//5.执行sql语句
		int result = preparedStatement.executeUpdate();
		
		System.out.println(result);
		
	
	}
	
	/*
	 * 封装Jdbcutils来简化操作
	 * */
	@Test
	public void fun3() throws SQLException
	{
		PreparedStatement preparedStatement = null;
		Connection conn = Jdbcutils.getConnection();

		//4.创建PreparedStatement
		String sql = "insert into stu values(?,?)";
		preparedStatement = conn.prepareStatement(sql);
		preparedStatement.setString(1, "jiajia1");
		preparedStatement.setDouble(2, 11.1);
		
		//5.执行sql语句
		int result = preparedStatement.executeUpdate();
		
		System.out.println(result);
	}
	
	/*
	 * jdcb 使用事务
	 * */
	
	@Test
	public void fun4()
	{
		PreparedStatement preparedStatement = null;
		Connection conn = null;
		
		try {
			
			//1.获取连接
			conn = Jdbcutils.getConnection();
			
			//2.关闭自动commit
			conn.setAutoCommit(false);
		
			
			//3..创建PreparedStatement
			String sql = "update stu set money=? where username=? ";
			preparedStatement = conn.prepareStatement(sql);
			
			//4.插入一条语句
			preparedStatement.setDouble(1, 100);
			preparedStatement.setString(2, "aslan");
			
			//5.执行sql语句
			int result = preparedStatement.executeUpdate();
			
			if(true)
				throw new RuntimeException("测试一下");
			
			//4.插入一条语句
			preparedStatement.setDouble(1, 101);
			preparedStatement.setString(2, "kaka");
			
			//5.执行sql语句
			result = preparedStatement.executeUpdate();
			
			
			conn.commit();
				
		} catch (Exception e) {
			e.printStackTrace();
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
	
	/*
	 * 使用数据库连接池
	 * 1.导入包: commons-dbcp-1.4.jar commons-pool.1.6.jar
	 * 2.
	 * */
	@Test
	public void  fun5()   {

		try {
			//1.创建数据库连接池
			BasicDataSource dataSource = new BasicDataSource();
			
			//2.初始化池参数
			dataSource.setDriverClassName("com.mysql.jdbc.Driver");
			dataSource.setUrl("jdbc:mysql://localhost:3306/test");
			dataSource.setUsername("root");
			dataSource.setPassword("root");
			
			//3.获取Connection连接
			Connection conn = dataSource.getConnection();

			//4.关闭conn ,本质是把连接归还到连接池
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/*
	 * 使用c3p0 数据库连接池
	 * 需要导入下面三个jar包
	 * 		c3p0-0.9.5.2.jar
	 *		c3p0-oracle-thin-extras-0.9.5.2.jar
	 *		mchange-commons-java-0.2.11.jar
	 * */
	@Test
	public void fun6() throws Exception
	{
		//1.创建连接池对象
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		
		//2.加载连接池参数
		dataSource.setDriverClass("com.mysql.jdbc.Driver");
		dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
		dataSource.setUser("root");
		dataSource.setPassword("root");
		
		//3.获取Connection连接
		Connection conn = dataSource.getConnection();
		
		System.out.println(conn);
		
		//4.关闭conn ,本质是把连接归还到连接池
		conn.close();
	}
	
	/*
	 * 使用c3p0数据库连接池,使用配置文件来初始化参数
	 * 1.需要3个必备的jar包
	 * 2.需要 src目录下的 cp30-config.xml配置文件
	 * */
	
	@Test
	public void fun7() throws SQLException
	{
		//1.创建连接池对象
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		
		//2.获取Connection对象
		Connection conn = dataSource.getConnection();
		
		//3.
		System.out.println(conn);

		//4.关闭conn
		conn.close();
	}
	
	/*
	 * 使用c3p0数据库连接池,使用配置文件来初始化参数
	 * 1.需要3个必备的jar包
	 * 2.需要 src目录下的 cp30-config.xml配置文件
	 * */
	
	@Test
	public void fun8() throws SQLException
	{
		//1.创建连接池对象
		ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql-config");
		
		//2.获取Connection对象
		Connection conn = dataSource.getConnection();
		
		//3.
		System.out.println(conn);

		//4.关闭conn
		conn.close();
	}
	
	/*
	 * dbutils的使用
	 * 依赖的jar包 commons-dbutils-1.6.jar
	 *  另外需要的文件:c3p0-config.xml 和 jdbcutils.java
	 * */	
	@Test
	public  void  fun9() throws SQLException {
		
		//1.创建qr对象
		QueryRunner qr = new QueryRunner(Jdbcutils.getDataSource());
		
		//2.给出sql模版
		String sql = "insert into stu values(?,?)";
		
		//3.给出sql参数
		Object[] params = {"xiaojiaa",1000};
		
		//4.执行sql语句
		qr.update(sql,params);
		
	}
	
}

2.当前学到的点就是上面列出来的

© 著作权归作者所有

共有 人打赏支持
抢地主
粉丝 5
博文 131
码字总数 24524
作品 0
朝阳
从java1到java9每个版本都有什么新特性?五分钟了解

     其实,我是个标题党,没有java1的说法,java9的新特性我也没总结。所以,来个关注吧,说不定哪天就出了呢。。。   每次出新版本,大家大概都会这么问,“Java X会有什么特性呢?”...

java进阶架构师
2017/11/13
0
0
JAVA区块链项目实战视频课程

课程介绍 全国首套,基于java的区块链实战教程。目的是让更多的java编程者了解区块链,掌握区块链开发。 1、区块链理论:以node.js例子区块链原理有深刻理解; 2、区块链java实战:深刻理解区...

小红牛
09/14
0
0
JavaWeb07-HTML篇笔记(二)

1.1 案例一:使用JDBC完成CRUD的操作:1.1.1 需求: 对分类管理使用JDBC进行CRUD的操作. 1.1.2 分析:1.1.2.1 技术分析: 【JDBC的概述】 Ø JDBC:Java DataBase Connectivity Java数据库的连...

我是小谷粒
05/16
0
0
Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874
04/01
0
0
My java——JVM(java 虚拟机)一

JVM是Java Virtual Machine(Java虚拟机)的缩写。一般我们在学习java中会用到很多缩写名称,如JRE、JDK、SDK、JAVA SE、JAVA EE、JAVA ME、JAVA FX、还有j2se、j2ee、javaee5,我勒个去!多...

tngou
2013/03/13
0
2

没有更多内容

加载失败,请刷新页面

加载更多

idea 通过jpa自动生成实体类

引入jpa包 打开persistence窗口 右键选择连接数据库 如果数据库没配置,则可以在下图选项中配置 选择好数据库和实体类的生成地址

斩神魂
18分钟前
1
0
tcpdump 命令

TCPDUMP简介 tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linu...

寰宇01
25分钟前
2
0
软件的Alpha、Beta、RC、GA版本的区别

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。 RC:(Release Candidate) 顾名思义...

乔老哥
26分钟前
1
0
慢雾安全海贼王:从DApp亡灵军团,细说区块链安全

本文转载自微信公号“万向区块链”,为慢雾安全负责人海贼王在万向区块链实验室举办的2018上海区块链国际周-技术开放日上的演讲速记整理。 这张图总结了智能合约攻防的各个方面,分为两大部分...

万向区块链
32分钟前
12
0
Matlab编程之——卷积神经网络CNN代码解析

卷积神经网络CNN代码解析 deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoE ncoder(堆栈SAE,卷积CAE)的作...

酒逢知己千杯少
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部