0
点赞
收藏
分享

微信扫一扫

mybatis基于接口增删改查小例子

王栩的文字 2022-11-20 阅读 162


1、idea新建web项目并配置classes、lib

2、将数据库、mybatis的jar包拷贝到lib下

3、src下创建config目录,在config下新建配置文件Configure.xml:

<!--?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.lxj.entiry.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://127.0.0.1:3306/javatest" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>

<mappers>
<!--<!– // power by http://www.yiibai.com –>-->
<mapper resource="com/lxj/entiry/User.xml" />
</mappers>
</configuration>

4、src下创建com.lxj.entiry目录,在该目录下新建实体类User:

package com.lxj.entiry;

public class User {
private int id;
private String name;
private String dept;
private String phone;
private String website;

public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
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 getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}

5、在com.lxj.entiry目录下新建映射文件User.xml(!!!这里一定要注意namespace,是对应的接口名称!!!):

<?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.lxj.dao.IUser">
<select id="getUser" parameterType="int" resultType="com.lxj.entiry.User">
SELECT * FROM USER WHERE id = #{userId}
</select >

<insert id="insertUser" parameterType="com.lxj.entiry.User">
INSERT INTO USER(name,dept,website,phone)VALUES (#{name},#{dept},#{website},#{phone})
</insert>

<select id="getUserList" resultType="com.lxj.entiry.User">
SELECT * FROM USER
</select>

<update id="updateUser" parameterType="com.lxj.entiry.User">
UPDATE USER SET name=#{name},dept = #{dept},website = #{website},phone = #{phone} WHERE id = #{id}
</update>

<delete id="deleteUser" parameterType="int">
DELETE FROM USER WHERE id = #{id}
</delete>

</mapper>

6、在src下新建文件夹com.lxj.dao,在此文件夹下新建接口IUser:

package com.lxj.dao;

import com.lxj.entiry.User;

import java.util.List;

public interface IUser {

public List<User> getUserList();

public void insertUser(User user);

public void updateUser(User user);

public void deleteUser(int userId);

public User getUser(int id);
}

7、src下新建test文件夹,在test文件夹下新建测试类Main:

package test;

import java.io.Reader;
import java.util.List;

import com.lxj.dao.IUser;
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.lxj.entiry.*;

public class Main {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;

static {
try{
reader = Resources.getResourceAsReader("config/Configure.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch (Exception e){
e.getStackTrace();
}
}

public static SqlSessionFactory getSession(){
return sqlSessionFactory;
}

public static void main(String[] args){
// testInsertUser();
// testGetList();
// testUpdateUser();
testDeleteUser();
}

private static void testInsertUser(){
SqlSession session = sqlSessionFactory.openSession();

IUser userMapper = session.getMapper(IUser.class);
System.out.printf("insert user start ....");

//插入数据
User user = new User();
user.setName("aa");
user.setDept("ddd");
user.setPhone("13247629622");
user.setWebsite("http://www.qqq.com");
userMapper.insertUser(user);
session.commit();

System.out.printf("after insert ...");
}

private static void testGetList(){

SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);

List<User> list = iUser.getUserList();

for(User user: list){
System.out.printf(user.getName()+" " +user.getDept()+" "+user.getPhone()+" "+user.getWebsite());
}
}

private static void testUpdateUser(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);

User user = iUser.getUser(1);
user.setName("ppp");
iUser.updateUser(user);

session.commit();
System.out.printf("update success");
}

private static void testDeleteUser(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);

iUser.deleteUser(1);
session.commit();
System.out.printf("delete success");

}
}


8、运行测试类Main中的main方法

举报

相关推荐

0 条评论