栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java高级03:数据库JDBC的连接复习,小知识点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java高级03:数据库JDBC的连接复习,小知识点

小知识1:此处的感叹号是软件提醒你声明了但没有使用,占用资源。 

小知识2:对比spring事务的自动处理模式:

package demo_jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//jdbc的直连
public class conectionPool {
	//四个属性
	private static final String URL="jdbc:mysql://localhost:3306/cc_student?useUnicode=true&characterEncoding=utf8";
	private static final String USER="root";
	private static final String PASSWORD="3306";
	private static final String DRIVER="com.mysql.jdbc.Driver";//驱动
	//连接
	public static Connection getConnection(){
		try {
			System.out.println("程序加载成功");
			//加载驱动
			Class.forName(DRIVER);
			Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
			return connection;
		} catch (Exception e) {//改成基类的
			e.printStackTrace();
			System.out.println("程序加载失败");
			return null;
		}
	}
	public static void main(String[] args) {
		//getConnection();
		//findAll();
		save();
	}
	
	
	//简单查询
	public static void findAll(){
		String sql="select * from stu";
		
		//创建数据库的连接
		//先都null防止报错
		Connection connection = null;
		Statement stat = null;
		ResultSet rs = null;//接收
		
		try {
			connection = conectionPool.getConnection();
			stat = connection.createStatement();
			rs =  stat.executeQuery(sql);
			while(rs.next()){
				System.out.println(rs.getInt("no"));
				System.out.print(" "+rs.getString("name"));
				System.out.print(" "+rs.getString("sex"));
				System.out.print(" "+rs.getInt("age"));
				System.out.print(" "+rs.getString("notes"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			//后开先关
			try {
				rs.close();
				stat.close();
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	//简单增加
	public static void save(){
		String sql = "insert into stu(no,name,sex,age,notes) values(0,'星星','女',18,'备注')";
		//创建数据库的连接
		Connection connection = null;
		Statement stat = null;
		
		try {
			//1.开启连接
			connection = conectionPool.getConnection();
			//2.开启事务管理
			connection.setAutoCommit(false);//默认true自动提交模式,开启事务管理的一部分,false指手动提交模式
			//3.执行业务代码
			stat = connection.createStatement();
			stat.executeUpdate(sql);
			//4.若有2是false,才需要4:提交事务;若2是自动提交则无需4,否则报错。
			connection.commit();
			
			//对比spring事务,自动处理模式,针对2、4
		} catch (SQLException e) {
			//4.事物的回滚,无论哪里出现问题需要报错,都可以回滚到上一步骤,防止伤害程序
			try {
				connection.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			
			e.printStackTrace();
		}finally {
			//后开先关
			try {
				//5.关闭连接和业务应用
				stat.close();
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号