mybatis--实现数据库增删改查

首先,创建一个数据库my,并在数据库中插入一张表user,然后在user表中插入一行数据,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
create database my;
 
use my;
create table user(
id int(10) auto_increment,
name varchar(64),
level varchar(256),
phone varchar(256),
primary key(id)
);
 
insert into user(id,name,level,phone) values(1,'a','a','1234555666');

其次,创建mybatis配置文件config.xml,配置文件代码如下:

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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="User" type="com.zk.model.User" />
</typeAliases>
 
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/my"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>
 
<mappers>
    <!-- // power by http://www.yiibai.com -->
    <mapper resource="com/zk/model/UserMapper.xml" />
</mappers>
</configuration>

再次,创建一个IUser.java接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.zk.dao;
 
import java.util.List;
 
import com.zk.model.User;
 
public interface IUser {
    //增加
    public void addUser(User user);
    //删除
    public void deleteUser(int id);
    //更新
    public void updateUser(User user);
    //删除
    public User selectUser(int userid);
    //查看所有使用者
    public List<User> selectAllUser();
}

创建一个User.java实体类

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
package com.zk.model;
 
public class User {
    private int id;
    private String name;
    private String level;
    private String phone;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", level=" + level
                + ", phone=" + phone + "]";
    }
}

接着,在配置UserMapper.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="com.zk.dao.IUser"><br>    <insert id="addUser" parameterType="User"><br>  Insert into user(id,name,level,phone) values(#{id},#{name},#{level},#{phone});
    </insert>
     
    <delete id="deleteUser" parameterType="User">
    delete from user where id=#{id};
    </delete>
     
    <update id="updateUser" parameterType="User">
    update user set name=#{name},level=#{level},phone=#{phone} where id=#{id};
    </update>
     
    <select id="selectUser" parameterType="User" resultType="com.zk.model.User">
    Select * from user where id=#{id};
    </select>
     
    <select id="selectAllUser" resultType="com.zk.model.User">
    Select * from user;
    </select>
</mapper>

最后,构建一个Main.java,实现数据库增删改查的功能:

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package MainApp;
 
import java.io.IOException;
import java.io.Reader;
import java.util.List;
 
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
import com.zk.dao.IUser;
import com.zk.model.User;
 
public class Main {
    private static SqlSessionFactory sqlsessionfactory;
    private static Reader reader;
     
    static{
        try {
            reader=Resources.getResourceAsReader("config/config.xml");
            sqlsessionfactory=new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    public SqlSessionFactory getSqlSessionFactory()
    {
        return sqlsessionfactory;
    }
     
    public static void main(String[]args)
    {
        //Insert();
        //delete();
        //update();
        select(1);
    }
     
    public static void Insert(){
        //获取session连接
        SqlSession session=sqlsessionfactory.openSession();
        //获取mapper
        IUser usermap=session.getMapper(IUser.class);
        //执行插入
        User user1=new User();
        user1.setId(1);
        user1.setLevel("a");
        user1.setName("a");
        user1.setPhone("19832321123");
        usermap.addUser(user1);
        //提交事务
        //获取插入信息
        session.commit();
        selectAllUser();
    }
 
    public static void delete(){
        //获取session连接
        SqlSession session=sqlsessionfactory.openSession();
        //获取mapper
        IUser usermap=session.getMapper(IUser.class);
        //执行删除
        usermap.deleteUser(1);
        session.commit();
        selectAllUser();
    }
     
    public static void update(){
        //获取session连接
        SqlSession session=sqlsessionfactory.openSession();
        //获取mapper
        IUser usermap=session.getMapper(IUser.class);
        selectAllUser();
        User user = usermap.selectUser(1);
        user.setName("c");
        //执行删除
        usermap.updateUser(user);
        session.commit();
        selectAllUser();
    }
     
    public static void select(int id){
        //获取session连接
        SqlSession session=sqlsessionfactory.openSession();
        //获取mapper
        IUser usermap=session.getMapper(IUser.class);
        //selectAllUser();
        User user = usermap.selectUser(id);
        //执行查询
        System.out.println(user.toString());
        session.commit();
        //selectAllUser();
    }
     
 
    private static void selectAllUser() {
        // TODO Auto-generated method stub
        SqlSession session=sqlsessionfactory.openSession();
        IUser user=session.getMapper(IUser.class);
        printUser(user.selectAllUser());
    }
 
    private static void printUser(final List<User> users) {
        // TODO Auto-generated method stub
        int count = 0;
 
        for (User user : users) {
            System.out.println("User Id: " + user.getId());
            System.out.println("User Name: " + user.getName());
            System.out.println("User Dept: " + user.getLevel());
            System.out.println("User Website: " + user.getPhone());
        }
    }
}

这样就完成了数据库的增删改查。

程序结构如下图所示:

 

posted @   leagueandlegends  阅读(1600)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示