数据库
首页 > 数据库> > JDBC 链接数据库方式

JDBC 链接数据库方式

作者:互联网

用配置文件,在工程的src包下建立properties文件夹;(建立

floder--lib将数据库需要的jar包导入,要add to path)

建立连接:

1.读取配置文件基本信息:用户名、密码、url、加载驱动:driverClass=com.mysql.jdbc.Driver(mysql已经写好,直接调用就可以)

配置文件内容:

user=root
password=101502
url=jdbc:mysql://localhost:3306/customersdb
driverClass=com.mysql.jdbc.Driver

java:

1.读取配置文件信息

2.加载驱动

3.建立连接

//1.读取配置文件中的四个基本信息
		InputStream is = jdbcTest1.class.getClassLoader().getResourceAsStream("jdbc.properties");
		Properties pros = new Properties();
		pros.load(is);//加载配置文件中的信息
		
		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");
		
		//2.加载驱动
		Class.forName(driverClass);
		
		//3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		System.out.println(conn);

java中操作数据库,

/*
 * 使用Statement弊端:需要拼写sql语句,并且存在sql注入的问题
 * 为了避免出现sql注入问题,用PreparedStatement(statement扩展而来)取代Statement
 *PreparedStatement代替Statement来实现增删改查操作
 *增删改  查:
 *增删改:不需要返回;查:要有返回值
 * 
*/

使用PreparedStatement:

InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");

用类加载器通用性好


		Connection conn = null;
		
		PreparedStatement ps = null;
		try {
			//InputStream is = jdbcTest1.class.getClassLoader().getResourceAsStream("jdbc.properties");
			InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");

			Properties pros = new Properties();
			pros.load(is);//加载配置文件中的信息
			
			String user = pros.getProperty("user");
			String password = pros.getProperty("password");
			String url = pros.getProperty("url");
			String driverClass = pros.getProperty("driverClass");
			
			//2.加载驱动
			Class.forName(driverClass);
			//3.获取连接
			conn = DriverManager.getConnection(url, user, password);
			//System.out.println(conn);
			//4.预编译sql语句,返回PreparedStatement的实例
			String sql = "insert into customers(name,email,birth) values (?,?,?)";
			//上述?为占位符
			ps = conn.prepareStatement(sql);
			//5.填充占位符
			ps.setString(1, "哪吒");
			ps.setString(2, "nezha@qq.com");
			//注意填充的类型,日期类型转化后再填充
			//定义日期格式,要注意日期的填充,设置日期格式,日期格式转化,util下的,然后再以sql形式添加
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			java.util.Date date = sdf.parse("1000-01-01");
			ps.setDate(3, new Date(date.getTime()));
			
			//6.执行操作
			ps.execute();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//7.资源的关闭
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(conn != null) {
					conn.close();
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	
	
	}

要注意日期格式的书写,不然会报错;
 

标签:JDBC,getProperty,String,数据库,pros,driverClass,catch,链接,conn
来源: https://blog.csdn.net/weixin_42109930/article/details/121332526