jdbc的增删改查_netbeans数据库增删改查

jdbc的增删改查_netbeans数据库增删改查JBDC数据的持久化:把数据保存到磁盘上。JDBC是java访问数据库的基石,JDO,Hibernate,Mybatis等都是基于JDBCJDBC是一个独立于特定数据库的管理系统,通用的SQL数据库存取和操作的公共接口配置文件:jdbc.propertiesuser=rootpassword=abc123url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.jdbc.Driver获取Connectionpublic s

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

JBDC


数据的持久化:把数据保存到磁盘上。
JDBC是java访问数据库的基石,JDO,Hibernate,Mybatis等都是基于JDBC
JDBC是一个独立于特定数据库的管理系统,通用的SQL数据库存取和操作的公共接口
在这里插入图片描述
在这里插入图片描述
配置文件:jdbc.properties

user=root
password=abc123
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver

获取Connection

public static void main(String[] args) throws Exception { 

//方式一
Driver driver = new com.mysql.jdbc.Driver();
String url = "jdbc:mysql://localhost1:3306/test";
Properties info = new Properties();
info.setProperty("user","root");
info.setProperty("password","123456");
Connection connect = driver.connect(url, info);
//方式二:反射实现获取驱动对象 不用出现第三方的类
Class clazz = Class.forName("com.mysql.jdbc.Driver");
//权限要够
Driver driver1 = (Driver) clazz.newInstance();
//方式三:使用DriverManager替换Driver
//获取驱动实现类对象
Class clazz1 = Class.forName("com.mysql.jdbc.Driver");
Driver driver2 = (Driver) clazz1.newInstance();
String url1 = "jdbc:mysql://localhost1:3306/test";
String user1 = "root";
String password1 = "123456";
//注册驱动
DriverManager.registerDriver(driver2);
//获取连接
Connection connection = DriverManager.getConnection(url, user1, password1);
System.out.println(connection);
//方式4:优化方式四
Class.forName("com.mysql.jdbc.Driver");
//注册驱动
DriverManager.registerDriver(driver2);
//获取连接
Connection connection1 = DriverManager.getConnection(url, user1, password1);
System.out.println(connection1);
//方式5:读取配置文件
InputStream resourceAsStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(resourceAsStream);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String url2 = properties.getProperty("url");
String driverClass = properties.getProperty("driverClass");
Class.forName(driverClass);
Connection connection2 = DriverManager.getConnection(url, user, password);
}

操作和访问数据库

在这里插入图片描述
PrepareStatement相比Statement能够解决SQL注入,拼串,能操作Blob数据,实现更高效的批量操作,

添加

public static void main(String[] args) throws Exception{ 

InputStream resourceAsStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(resourceAsStream);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driverClass = properties.getProperty("driverClass");
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url, user, password);
//添加数据
//预编译sql语句,PreparedStatement实例
String sql = "insert into customers(name,email,birth) values(?,?,?)";
java.sql.PreparedStatement preparedStatement = connection.prepareStatement(sql);
//填充占位符
preparedStatement.setString(1,"哪吒");
preparedStatement.setString(2,"nezha@gmail.com");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse("1000-01-01");
preparedStatement.setDate(3, (java.sql.Date) new Date(date.getTime()));
//执行sql
preparedStatement.execute();
preparedStatement.close();
connection.close();
}

修改

        //预编译sql语句,PreparedStatement实例
String sql = "update customers set name = ? where id = ?";
java.sql.PreparedStatement preparedStatement = connection.prepareStatement(sql);
//填充占位符
preparedStatement.setString(1,"莫扎特");
preparedStatement.setObject(2,28);
//执行sql
preparedStatement.execute();
preparedStatement.close();
connection.close();

查找

//预编译sql语句,PreparedStatement实例
String sql = "select id,name,email,birth from customers where id = ?";
java.sql.PreparedStatement preparedStatement = connection.prepareStatement(sql);
//填充占位符
//执行sql
ResultSet resultSet = preparedStatement.executeQuery();
//获取结果集的元数据:ResultSetMetaData
ResultSetMetaData rsmd = preparedStatement.getMetaData();
int columnCount = rsmd.getColumnCount();
while (resultSet.next()){ 

Customer cust = new Customer();
for(int i = 0;i < columnCount;i ++){ 

Object object = resultSet.getObject(i + 1);
//获取每个列的列明
String columnName = rsmd.getColumnName(i + 1);
Field declaredField = Customer.class.getDeclaredField(columnName);
declaredField.setAccessible(true);
declaredField.set(cust,object);
}
}
preparedStatement.close();
connection.close();
resultSet.close();
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168941.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • forkjoin用法_数组join方法

    forkjoin用法_数组join方法Fork/Join是一个分而治之的任务框架,如一个任务需要多线程执行,分割成很多块计算的时候,可以采用这种方法。动态规范:和分而治之不同的是,每个小任务之间互相联系。工作密取:分而治之分割了每个任务之后,某个线程提前完成了任务,就会去其他线程偷取任务来完成,加快执行效率。同时,第一个分配的线程是从队列中的头部拿任务,当完成任务的线程去其他队列拿任务的时候是从尾部拿任务,所以这样就避免了竞争。在Java的Fork/Join框架中,使用两个类完成上述操作:  1.ForkJoinTask:我们要使用F

  • JMeter实战(三) 界面使用

    JMeter实战(三) 界面使用

    2020年11月20日
  • mysql 把表名改成大写_mysql将表名改成大写的实例

    mysql 把表名改成大写_mysql将表名改成大写的实例MYSQL将表名称修改成大写的存储过程本文为大家分享了MYSQL将表名称修改成大写的存储过程,具体内容如下1.条件:1.1Mysql设置对大小写敏感2.执行下述存储过程:#calluppercase(‘库名’)DROPPROCEDUREIFEXISTSuppercase;CREATEPROCEDUREuppercase(INdbnameVARCHAR(200))BEGIND…

  • shiro面试知识点总结_jmeter面试常见问题

    shiro面试知识点总结_jmeter面试常见问题Shiro总结和常见面试题一、 什么是shiroShiro是一个强大易用的java安全框架,提供了认证、授权、加密、会话管理、与web集成、缓存等功能,对于任何一个应用程序,都可以提供全面的安全服务,相比其他安全框架,shiro要简单的多。二、 Shiro的核心概念Subject、SecurityManager、RealmSubject:主体,代表了当前“用户”,这个用户不一定是一个具体的…

    2022年10月14日
  • 测试知识图谱[通俗易懂]

    测试知识图谱[通俗易懂]之前整理了一份测试知识图谱,还有一些不足,希望大家指出来。参考了数位大师的成果,下面是他人整理的。

  • redis通过6379端口无法连接服务器

    redis通过6379端口无法连接服务器看了网上很多解决方案,都是端口问题,将127.0.0.1改为0.0.0.0,就ok了,但是本人的问题不是端口问题,端口本来就是0.0.0.0。其实redis无法连接数据库就只有这几种可能,防火墙,安全组,密码,绑定IP。这次的问题感觉还是比较让人费解的,当更换端口号的时候就可以,默认端口6379就是不行。按照顺序依次检查了防火墙,安全组,密码,配置文件,都确认没有问题之后,再次启动redis,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号