java增删改

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
2
3
4
5
6
7
8
9
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;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
每次连接数据库的时候调用就可以了:

DbUtil dbUtil=new DbUtil();
con=dbUtil.getConnection();

1
2
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);
1
2
3
4
5
6
7
3.在这个PreparedStatement对象中执行SQL查询,并返回由查询生成的ResultSet对象。

ResultSet rs=null;
rs=ps.executeQuery();
1
2
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"));


        }

1
2
3
4
5
6
7
8
9
10
11
12
13
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();

1
2
3
4
5
6
7
8
9
2.增加和修改:二者的思路差不多

2.1整体思路

增加和修改都是内存中的数据存于数据库,一个持久化的过程
2.2流程

1.建立与数据库的连接

//在此就不再赘述,参考查询
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=?;”;
1
2
3
4
5
6
7
3.在这个PreparedStatement对象中执行SQL增加和修改

//注意区别查询的执行方法
//rs=ps.executeQuery();
//因为增加和修改是数据存入数据库,所以没有查询结果,也就没有ResultSet对象rs
ps.executeUpdate();
1
2
3
4
4.因为增加和修改是数据存入数据库,所以没有查询结果
5.最后别忘了关con,ps,rs这三个对象
(不再赘述)

3.删除

3.1整体思路

删除是从数据库中删除指定的记录,根据某一条属性值
3.2流程

1.建立与数据库的连接

//在此就不再赘述,参考查询
1
2.然后就是创建一个PreparedStatement对象,用于向数据库发送参数化SQL语句,并设置参数值。

//在此就不再赘述,参考查询
//写一下增加和修改的SQL语句例子
String sql=“DELETE FROM news WHERE title = ?;”;
1
2
3
3.在这个PreparedStatement对象中执行SQL增加和修改

//注意区别查询的执行方法
//rs=ps.executeQuery();
//因为删除是数据存入数据库,所以没有查询结果,也就没有ResultSet对象rs
ps.executeUpdate();
1
2
3
4
4.因为删除是数据存入数据库,所以没有查询结果
5.最后别忘了关con,ps,rs这三个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值