文档章节

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
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
用大白话告诉你啥是Java开发

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

远方Java
06/14
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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud SpringBoot mybatis分布式Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用...

itcloud
11分钟前
0
0
c++ std::bind和std::function

定义于头文件 <functional> std::bind 函数绑定,https://zh.cppreference.com/w/cpp/utility/functional/bind // bind 用例#include <iostream>#include <functional> // 自定义的一......

SibylY
14分钟前
0
0
SecureCRT的安装与破解(过程很详细!!!)

SecureCRT的安装与破解(过程很详细!!!) SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方...

DemonsI
18分钟前
0
0
介绍几款可用的web应用防火墙

目前有两款,基于软件和基于应用程序的web应用防火墙。基于软件的产品布置在Web服务器上,而基于应用程序的产品放置在Web服务器和互联网接口之间。两种类型的防火墙都会在数据传入和传出web...

上树的熊
25分钟前
1
0
用Visual Studio开发以太坊智能合约

区块链和以太坊 自从我熟悉区块链、以太坊和智能合约以来,一直失眠。 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议使用以太坊网站官方客户端应用程序(Ethereum Wallet)也...

geek12345
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部