java JDBC 数据库

java 数据库程序设计:

数据库:按照一定的数据结构来组织、存储和管理数据的仓库;
数据库管理系统 DBMS[Data Base Management System]:是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库
数据库系统(database system) 由数据库、数据库管理系统、以及应用程序组成
关系型数据库:三个要素:结构 完整性 和语言

JDBC[Java Database Connectivity]:

与数据库建立连接, 发送sql语句,处理sql语句返回的结果

  1. :建立与数据库的连接:

(1)加载相应数据库的JDBC驱动程序(JDk6 以后自动加载)

  java.lang.Class.Forname("JDBCDriverClass")

(2)建立与数据库的连接

Connection conn = DriverManager.getConnection(String url,String user,String passWord) 
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/ssh_example","root","guo123456.")
  1. 执行sql语句:

(1)创建Statement对象:传输sql语句,并将执行结果返回

Statement stmt =  conn.createStatement();

(2)执行sql语句:Statement 对象会将结果封装成ResultSet对象返回

String sql = "select * from Student"
 	ResultSet rs = stmt.executeQuery(sql);

<3> 处理返回结果:

while(rs.next){
		String no = rs.getString("sNo");
		string no = rs.getString(1);
	}

<4>关闭创建的各种对象:
1)关闭结果集对象 rs.close();
2)关闭Statement对象 stmt.close();
3)关闭连接对象 conn.close();

<5>数据库进一步操作:
1)不含参数的静态查询:Statemnet

  1. 含有参数的动态查询:PrepareStatement
  2. 储存过程:callableStatement

[1]Statement() 接口
静态sql语句在执行 executeQUery(); executeUpdate()等方法时,作为参数的Sql语句的内容不变,也就是sql语句中没有参数
int count = stmt.executeUpdate(updateSql);

[2]PreparedStatement()接口
是处理预编译语句的一个接口,执行动态的sql语句,(sql 语句中提供参数)
String sql = “select * from Student where name =?”
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,“201201012”)
ps.executeQuery();

[3]CallbleStatement()接口
继承 Statement()接口 和 PreparedStatement() 接口,既可以处理一般的sql语句,也可以处理 IN(输入)参数
还定义了OUT(输出)参数,以及INOUT(输入输出)参数的处理方法。

  1. 事务处理:

1)setAutoCommit() :事物操作默认是自动提交
conn.setAutoCommit(false)
2)commit():提交sql语句
3)rollback():当调用 Commit() 方法进行事务处理,如果有一条sql语句没有执行生效,就会抛出SQLException异常,
调用 rollback()方法,事务取消并将数据进行恢复。事物回滚。

#----------------连接数据库代码------------------
public class Test19 {
	private static String driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://localhost:3306/ssh_example?useUnicode=true&characterEncoding=utf8";
	private static String user ="root";
	private static String password = "guo123456.";
	public static void main(String[] args) {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,password);
			String sql ="select * from Student";
			String insertsql = "insert into Student values('201201014','水库','男',47,'看到')";
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			while(rs.next()) {
				String no = rs.getString("sNo");
				String name = rs.getString("sName");
				String sex = rs.getString("sex");
				int age = rs.getInt("age");
				String dept = rs.getString("dept");
				System.out.println(no+" "+name+" "+sex+" "+age+" "+dept);
			}
			int rsinsert = stmt.executeUpdate(insertsql);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		finally
		{
			try {
				if(rs != null) rs.close();
				if(stmt !=null) rs.close();
				if(conn !=null) rs.close();
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值