Java实现增删改查
来源:互联网 发布:visio 2013 mac破解版 编辑:程序博客网 时间:2024/05/17 02:42
前言
增删改查是很多功能的基础,所以说把这个基础打好,你就能够实现更加复杂和强大的功能。
1.查询
1.1整体思路
查询是一个从数据库里面加载数据到内存的过程。
1.2流程
0.配置文件的创建
// mysql驱动类driver=com.mysql.jdbc.Driver//数据库路径url=jdbc:mysql://127.0.0.1:3306/news?useUnicode=true&characterEncode=utf8//数据库用户名username=root//数据库密码password=root
1.首先要与数据库建立链接
这里你可以写一个连接数据库的工具类,要不然每次都要加载配置,读取配置文件,可以把这些流程封装到一个类中,以后每次使用直接调用就可以了。
import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;/** * * * @ClassName:DbUtil * @Description:数据库工具类 * @author zmh * @date:2017年9月6日上午9:04:17 * */public class DbUtil { private static String driver; private static String url; private static String username; private static String password; /** * 加载配置文件 */ { loadResource(); } /** * 读取配置文件 */ public static void loadResource(){ InputStream in = DbUtil.class.getResourceAsStream("/db.properties"); Properties properties = new Properties(); try { properties.load(in); driver=properties.getProperty("driver"); url=properties.getProperty("url"); username=properties.getProperty("username"); password=properties.getProperty("password"); } catch (Exception e) { e.printStackTrace(); }finally{ try{ if(in!=null)in.close(); }catch(Exception e2){ e2.printStackTrace(); } } } /** * 数据库连接类 */ public static Connection getConnection(){ Connection connection=null; try { Class.forName(driver); connection=DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return connection; }}
每次连接数据库的时候调用就可以了:
DbUtil dbUtil=new DbUtil(); con=dbUtil.getConnection();
2.然后就是创建一个PreparedStatement对象,用于向数据库发送参数化SQL语句,并设置参数值。
PreparedStatement ps=null;//sql语句书写一定要正确,为确保正确可以先在数据库中新建一个查询,测试正确后再写于这里String sql="select title,description,content,typeId,publishTime,author,source from news where title=?;";//这里有异常需要捕获ps=con.prepareStatement(sql);ps.setString(1, newsTitle);
3.在这个PreparedStatement对象中执行SQL查询,并返回由查询生成的ResultSet对象。
ResultSet rs=null;rs=ps.executeQuery();
4.因为java是面向对象语言,查询的结果一般都是存于一个对象中
while(rs.next()){ news.setTitle(newsTitle); news.setDescription(rs.getString("description")); news.setContent(rs.getString("content")); news.setTypeId(rs.getInt("typeId")); news.setPublishTime(rs.getTimestamp("publishTime")); news.setAuthor(rs.getString("author")); news.setSource(rs.getString("source")); }
5.最后别忘了关con,ps,rs这三个对象
/** * 关的顺序和创建的顺序正好相反 */ if(ps!=null&&!ps.isClosed())ps.close(); if(rs!=null&&!rs.isClosed())rs.close(); if(con!=null&&!con.isClosed())con.close();
2.增加和修改:二者的思路差不多
2.1整体思路
增加和修改都是内存中的数据存于数据库,一个持久化的过程
2.2流程
1.建立与数据库的连接
//在此就不再赘述,参考查询
2.然后就是创建一个PreparedStatement对象,用于向数据库发送参数化SQL语句,并设置参数值。
//在此就不再赘述,参考查询//写一下增加和修改的SQL语句例子//增加String sql1="insert into news (title,description,typeId,publishTime,author,source,content) values(?,?,?,?,?,?,?);";//修改String sql2="update news set title=?, description=?, typeId=?, publishTime=?, author=?, source=?, content=? where title=?;";
3.在这个PreparedStatement对象中执行SQL增加和修改
//注意区别查询的执行方法//rs=ps.executeQuery();//因为增加和修改是数据存入数据库,所以没有查询结果,也就没有ResultSet对象rsps.executeUpdate();
4.因为增加和修改是数据存入数据库,所以没有查询结果
5.最后别忘了关con,ps,rs这三个对象
(不再赘述)
3.删除
3.1整体思路
删除是从数据库中删除指定的记录,根据某一条属性值
3.2流程
1.建立与数据库的连接
//在此就不再赘述,参考查询
2.然后就是创建一个PreparedStatement对象,用于向数据库发送参数化SQL语句,并设置参数值。
//在此就不再赘述,参考查询//写一下增加和修改的SQL语句例子String sql="DELETE FROM news WHERE title = ?;";
3.在这个PreparedStatement对象中执行SQL增加和修改
//注意区别查询的执行方法//rs=ps.executeQuery();//因为删除是数据存入数据库,所以没有查询结果,也就没有ResultSet对象rsps.executeUpdate();
4.因为删除是数据存入数据库,所以没有查询结果
5.最后别忘了关con,ps,rs这三个对象
(不再赘述)
- Java实现增删改查
- flex与java实现增删改查
- flex与java实现增删改查
- java实现xml文件增删改查
- java实现cassandra的增删改查
- java实现链表,增删改查
- flex于java实现增删改查
- java实现cassandra的增删改查
- JAVA实现单链表的增删改查
- Java连接MySQL实现增删改查
- java实现单链表的增删改查
- Java操作MongoDB实现增删改查
- Java操作SQLite实现增删改查
- java创建数组,实现增删改查
- java实现数组的增删改查
- 【java基础】JDBC实现增删改查
- java 利用数组实现增删改查
- java操作cookie实现增删改查
- linux安装
- 1030. Travel Plan (30)
- Django错误(1146,Table 'operation.django_session' doesn't exist")
- 欢迎使用CSDN-markdown编辑器
- 如何写SysV服务管理脚本
- Java实现增删改查
- 为了翻译文章
- 享元模式
- SHUOJ小偷偷东西
- [深度学习]Softmax 交叉熵
- Unity Update与LateUpdate执行顺序之坑
- 【15】前端开发--面试题整理(JS篇)
- UVa340 Master-Mind Hints
- Java中Exception和Error的区别