博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC_01 获取数据库连接的几种方式
阅读量:3967 次
发布时间:2019-05-24

本文共 3197 字,大约阅读时间需要 10 分钟。


本人是个新手,写下博客用于自我复习、自我总结。

如有错误之处,请各位大佬指出。
学习资料来源于:尚硅谷


jdbc.properties:

(url,用户名和密码 因人而异)

url=jdbc:mysql://localhost:3308/student

user=root
password=123456
driverClass=com.mysql.jdbc.Driver

ConnectionTest.java

import java.io.InputStream;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;import org.junit.Test;public class ConnectionTest {
//方式一: @Test public void testConnection1() throws SQLException{
//获取Driver的实现类对象 Driver driver = new com.mysql.jdbc.Driver(); String url = "jdbc:mysql://localhost:3308/student"; Properties info = new Properties(); info.setProperty("user", "root"); info.setProperty("password", "123456"); Connection conn = driver.connect(url,info); System.out.println(conn); } //方式二:对方式一的迭代:在如下的程序中不出现第三方的api,使得程序具有更好的可移植性 @Test public void testConnection2() throws Exception{
//1、获取Driver实现类对象:使用反射 Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) clazz.newInstance(); //2、提供要连接的数据库 String url = "jdbc:mysql://localhost:3308/student"; //3、提供连接需要的用户名和密码 Properties info = new Properties(); info.setProperty("user", "root"); info.setProperty("password", "123456"); //4、获取连接 Connection conn = driver.connect(url,info); System.out.println(conn); } //方式三:使用DriverManager替换Driver @Test public void testConnection3()throws Exception{
//1、获取Driver的实现类对象 Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) clazz.newInstance(); //2、提供另外三个连接的基本信息: String url="jdbc:mysql://localhost:3308/student"; String user="root"; String password="123456"; //注册驱动 DriverManager.registerDriver(driver); //获取连接 Connection conn = DriverManager.getConnection(url,user,password); System.out.println(conn); } //方式四:优化方式三。可以只是加载驱动,而不用显示的注册驱动了。 @Test public void testConnection4()throws Exception{
//1、提供另外三个连接的基本信息: String url="jdbc:mysql://localhost:3308/student"; String user="root"; String password="123456"; //2、加载驱动 Class.forName("com.mysql.jdbc.Driver"); //3、获取连接 Connection conn = DriverManager.getConnection(url,user,password); System.out.println(conn); } //方式五:将数据库连接需要的基本信息声明在配置文件中 /** * 好处:实现了数据与代码的分离,实现了解耦; * 如果需要修改配置文件信息,可以避免程序重新打包。 * */ @Test public void testConnection5()throws Exception{
//1、读取配置文件中的基本信息 InputStream is =ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties pros =new Properties(); pros.load(is); String user = pros.getProperty("user"); String url = pros.getProperty("url"); String password = pros.getProperty("password"); //2、加载驱动 Class.forName("com.mysql.jdbc.Driver"); //3、获取链接 Connection conn = DriverManager.getConnection(url,user,password); System.out.println(conn); } //在java.sql包中有3个接口分别定义了对数据库的调用的不同方式: /** * Statement:用于执行静态SQL语句并返回它所生成结果的对象。(不常用了) * PreparedStatement:SQL语句被预编译并存储在此对象中,可以使用此对象多次 * 高效地执行该语句。 * CallableStatement:用于执行SQL存储过程。 * * Statement弊端:需要拼写sql语句,并且存在SQL注入的问题。 * sql注入:用户名和密码输入错误也可登陆成功 * sql注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户 * 输入数据中注入非法的SQL语句段或命令,从而利用系统的SQL引擎完成恶意 * 行为的做法。 * 解决方案:用PreparedStatement取代Statement * */ //(具体使用之后再说)}

转载地址:http://zayki.baihongyu.com/

你可能感兴趣的文章
Pandas 多 DataFrame联接
查看>>
Sybase 系列文章目录
查看>>
SQLServer
查看>>
Hibernate 通过 Hibernate 访问数据库
查看>>
java面试题
查看>>
消息队列相关(MQ)
查看>>
生成短连接
查看>>
java多线程
查看>>
mybatis高级结果映射
查看>>
java 中的锁
查看>>
线程池
查看>>
深入浅出:Tomcat应用服器中Servlet容器架构及工作原理剖析
查看>>
fastjson 将json和java对象相互转换
查看>>
java获取cookie
查看>>
kafaka用例&市上最全总结
查看>>
神器 PySimpleGUI 初体验
查看>>
编程 学习视频教程大全
查看>>
查找最快的docker镜像
查看>>
AssignProcessToJobObject 错误码5 的解决办法
查看>>
windows LibreOffice 6.3.5 安装出错1355 问题解决
查看>>