文档章节

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
朝阳
私信 提问
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
11/15
131
0
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
128
0
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
112
0
用大白话告诉你啥是Java开发

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此...

远方Java
06/14
0
0
Java程序员从笨鸟到菜鸟全部博客目录【2012年十一月七日更新】

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主路线,想想这一年半,...

长平狐
2012/11/12
103
0

没有更多内容

加载失败,请刷新页面

加载更多

deepin中配置robot framework环境

本文永久更新地址:https://my.oschina.net/bysu/blog/2989005 【若要到岸,请摇船:开源中国 不最醉不龟归】 1.在终端中输入pip,回车,如果提示没有该命令,则先安转pip sudo apt-get inst...

不最醉不龟归
14分钟前
1
0
OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
今天
74
3
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
20
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
29
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部