当前位置:   article > 正文

安卓mysql数据库连接工具类_自定义JDBC工具类 连接MySQL数据库

com.jntoo.db.build.mysql

需要用到的jar包:mysql-connector-java-5.1.43-bin.jar

1.把连接数据库需要的信息,都保存在一个文件中,这个文件是一个properties文件

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/javaee1707?useSSL=true

user=root

password=123456

代码实现

public class JDBCUtil {

private static String url = null;

private static String user = null;

private static String password = null;

private static String driverClass = null;

private static InputStream in = null;

//利用静态代码块的特征,在类文件加载到内存的时候,就会执行在静态代码块里面的代码

static {

try {

//1. 读取配置文件信息 读取properties文件

Properties props = new Properties();

//如果一个properties文件加载到内存中,需要借助于IO流

in = new FileInputStream("./src/db.properties");

//2. 利用Properties里面的load方法加载文件

props.load(in);

//3. 可以通过Properties类对象,获取到想要的数据

url = props.getProperty("url");

user = props.getProperty("user");

password = props.getProperty("password");

driverClass = props.getProperty("driver");

//4. 加载类文件

Class.forName(driverClass);

} catch (IOException | ClassNotFoundException e) {

// TODO: handle exception

e.printStackTrace();

System.out.println("驱动加载失败");

} finally {

//关闭文件连接

if (in != null) {

try {

in.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

/**

获取数据库连接对象

@return

*/

public static Connection getConnection() {

Connection conn = null;

try {

conn = DriverManager.getConnection(url, user, password);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return conn;

}

/**

关闭数据库连接,释放Statement

@param conn 数据库连接对象

@param st Statement对象

*/

public static void close(Connection conn, Statement st) {

try {

if (st != null) {

st.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

// TODO: handle exception

e.printStackTrace();

//糖衣炮弹

throw new RuntimeException(e);

}

}

//关闭带有结果集的查询语句资源

public static void close(Connection conn, Statement st, ResultSet set) {

try {

if (st != null) {

st.close();

}

if (set != null) {

set.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

// TODO: handle exception

e.printStackTrace();

//糖衣炮弹

throw new RuntimeException(e);

}

}

}

3.通过自定义JDBC工具类来连接数据库

public class Demo2 {

//创建表格

@Test

public void createTable() {

Statement st = null;

//1. 通过已经封装好的JDBC工具类,获取到数据库的连接对象

Connection conn = JDBCUtil.getConnection();

try {

//2. 获取Statement,SQL语句运输者,将SQL语句运输到MySQL里面,让MySQL运行

st = conn.createStatement();

//3. 准备SQL语句

String sql = "create table WOW(heroID int not null primary key auto_increment,heroName char(30))";

//4. 通过Statement执行SQL语句

int count = st.executeUpdate(sql);

//5. 查看创建的结果

System.out.println("影响的行数:" + count);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// 使用Statement执行DML语句

@Test

public void testInsert() {

Statement st = null;

//1. 建立数据库连接

Connection conn = JDBCUtil.getConnection();

try {

//2. 获取到Statement

st = conn.createStatement();

//3. 准备SQL语句

String sql = "insert into WOW(heroName) values('萨满')";

//4. 通过Statement执行SQL语句

int count = st.executeUpdate(sql);

//5. 影响的行数

System.out.println("count = " + count);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

//conn是连接数据库的资源,st是应用程序到MySQL直接的SQL语句运输者

//这两个都算是资源,所以都需要关闭

try {

if (st != null) {

st.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

// TODO: handle exception

e.printStackTrace();

}

}

}

/ /使用Statement查询数据库中数据

@Test

public void testSelect() {

Connection conn = null;

Statement st = null;

ResultSet set = null; //查询语句返回的结果集对象

try {

//1. 获取数据库连接对象

conn = JDBCUtil.getConnection();

//2. 获取Statement

st = conn.createStatement();

//3. 准备SQL语句

String sql = "select * from WOW";

//4. 执行SQL语句 【获取查询结果集】

set = st.executeQuery(sql);

//5. Result next() getXXX(String 字段名) XXX表示不同的数据类型,

//根据当前的代码需求 使用不同的数据类型

while (set.next()) {

int heroID = set.getInt("heroID");

String heroName = set.getString("heroName");

System.out.println(heroID + ":" + heroName);

}

} catch (SQLException e) {

// TODO: handle exception

e.printStackTrace();

} finally {

JDBCUtil.close(conn, st, set);

}

}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/267204
推荐阅读
相关标签
  

闽ICP备14008679号