课工厂_Java Web开发系列课程_jdbc

Java Web开发系列课程_JDBC

  • 实现java对数据库的访问,通过一组类与接口,位于java.sql和javax.sql包中
  • JDBC连接数据库步骤
    以oracle数据库为例,将数据库驱动Jar包放在/Javax项目/WebRoot/WEB-INF/lib下
1.加载驱动
Class.forName("com.mysql.jdbc.Driver");//加载mysql数据库
Class.forName("oracle.jdbc.driver.OracleDriver");//加载oracle数据库
//后加载(桥接)即java反射机制

2.获取连接

String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
//String url = "jdbc:mysql://localhost:3306/kgcnews"//mysql数据库
String user = "scott";
String password = "tiger";
Connection connection = DriverManager.getConnection(url,user,password);
//导入包的时候导入java.sql的接口包
//MyEclipse中alt+/导包

3.创建Statemen或PreparedStatement对象、执行sql语句(oracle)

Stirng sql = "select * from emp;";
Statement stmt = connection.createStatement();//通过连接创建statement对象
ResultSet rs = stmt.executeQuery(sql);//通过statement执行sql
Stirng sql = "select * from emp where empno = ?;";
Statement stmt = connection.prepareStatement(sql);//通过连接创建preparedstatement对象,它可以预编译
stmt.setString(1,empno);//将第一占位符?赋值empno
ResultSet rs = stmt.executeQuery();//通过statement执行sql

4.返回并处理执行结果

while(rs.next()){
//int id = rs.getInt(1);
//String title = rs.getString(2);

int id = rs.getInt("id");
String title = rs.getString("title");
system.out.println(id+"\t"+title);
}

5.释放资源

finally{
			//关闭资源
			try {
				rs.close();
				stmt.close();
				connection.close();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}

数据库公共操作

创建基类,把公共的部分单独提取出来

//获取连接的方法
private boolean getConnection(String url, String user, String password) {
		// TODO Auto-generated method stub
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			connection = DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

配置文件存储数据库信息

配置文件dataBaseManager.properties

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.connection.url=jdbc:oracle:thin:@124.132.151.51:1521/hydee
jdbc.connection.username=h2
jdbc.connection.password=hydeesoft

基类baseDao.java

try {
			Class.forName(ConfigManager.getInstance().getString("jdbc.driver"));
			String url = ConfigManager.getInstance().getString("jdbc.connection.url");
			String user = ConfigManager.getInstance().getString("jdbc.connection.username");
			String password =ConfigManager.getInstance().getString("jdbc.connection.password") ;
			connection = DriverManager.getConnection(url, user, password);
		} 

单例模式管理类

package cn.kgc.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

//读取属性文件,获取数据库连接
//用户只需要new就可以;创建单例模式,1、将构造方法私有化;2、程序提供唯一对象
//单例实现方式,懒汉,饿汉
public class ConfigManager {
	private static ConfigManager configManager;
	Properties Properties;
private ConfigManager() {
		String configFile = "database.properties";
		InputStream in = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
		Properties = new Properties();
		try {
			Properties.load(in);
			in.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}


	public String getString(String key){
	
		// TODO Auto-generated method stub
		return Properties.getProperty(key);
		
	
	// TODO Auto-generated method stub

}
//提供给别人唯一的configmaneger对像,懒汉方式,添加锁,避免锁死,线程不安全
	public synchronized static ConfigManager getInstance(){
		if (configManager ==null) {
			configManager = new ConfigManager();
		}
		return configManager;
	}
	
	/*//提供给别人唯一的configmaneger对像,饿汉方式
		public static ConfigManager getInstance(){
			return configManager;
		}*/


}

JSP动作标签及第三方控件

JSP动作标签include的使用

使用页面跳转

在这里插入图片描述

数据源和连接池

  • 数据源
    javax.sql.DataSource接口负责建立与数据库的连接,由Tomcat提供,将连接保存在连接池中
  1. 数据源连接数据库,获取连接(Connection)对象
    Tomcat配置数据源步骤提示,配置Tomcat的conf/context.xml

	<Resource name="jdbc/news" 
              auth="Container"  type="javax.sql.DataSource"  maxActive="100" 
              maxIdle="30" maxWait="10000" username="root"  password="kgc" 
              driverClassName="com.mysql.jdbc.Driver" 
              url="jdbc:mysql://127.0.0.1:3306/kgcnews"/>
  1. 连接池管理连接(Connection)对象
  2. 程序中使用JNDI获取数据源
//获取与逻辑名称相关的数据源名称
DateSource ds = (DataSource)连接.lookup("java:comp/env/jdbc/news");
  1. 获取数据库连接
Connection connection = ds.getConnection();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值