JDBC 链接数据库方式
2021/11/15 19:11:49
本文主要是介绍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 链接数据库方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享