在idea中点击File
->New
->Project
,选择maven工程
找到工程中的pom.xml
文件,在文pom.xml
文件的dependencies
节点下添加如下依赖包
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.4.6version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.20version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.12version>
dependency>
在数据库中创建一个名字为user
的,给该表增加3个字段分别是id、name、age
实体类User
public class User {
private int id;
private String name;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "MyUser{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
UserMapper
类
public interface UserMapper {
User slelectUserById(int id);
List<User> slelectAll();
void insertUser(User user);
void updateUser(User user);
void deleteUser(int userId);
}
创建mybatis-config.xml
文件,并添加相关数据库连接配置
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springtest?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false" />
<property name="username" value="root"/>
<property name="password" value="123456"/>
dataSource>
environment>
environments>
<mappers>
<mapper resource="UserMapper.xml"/>
mappers>
configuration>
创建UserMapper.xml
映射文件
<mapper namespace="com.lucas.mybatis.mapper.UserMapper">
<select id="slelectUserById" parameterType="Integer"
resultType="com.lucas.mybatis.model.User">
select * from user where id = #{id}
select>
<select id="slelectAll" resultType="com.lucas.mybatis.model.User">
select * from user
select>
<insert id="insertUser" parameterType="com.lucas.mybatis.model.User">
insert into user (name,age) value (#{name},#{age})
insert>
<update id="updateUser" parameterType="com.lucas.mybatis.model.User">
update user set name= #{name},age= #{age} where id = #{id}
update>
<delete id="deleteUser" parameterType="Integer">
delete from user where id = #{id}
delete>
mapper>
创建日志配置文件log4j.properties
# 全局配置
log4j.rootLogger=ERROR,stdout
# MyBatis 日志配置
log4j.logger.com.lucas=DEBUG
# 控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
public class App {
private static SqlSessionFactory sqlsessionfactory;
public static void main(String[] args) {
InputStream inputstream;
try {
//获取Mybatis容器内容
inputstream = Resources.getResourceAsStream("mybatis-config.xml");
if (sqlsessionfactory == null) {
//新建一个factory,作用用来生产sqlSeesion
sqlsessionfactory = new SqlSessionFactoryBuilder().build(inputstream);
}
//使用factory的open方法创建一个sqlSeesion
SqlSession sqlsession = sqlsessionfactory.openSession();
// 根据Id查询数据
User userOne = sqlsession.selectOne("com.lucas.mybatis.mapper.UserMapper.slelectUserById",1);
System.out.println(userOne);
System.out.println("------------------------------");
//增加一条数据
User userInsert = new User();
userInsert.setName("张三1");
userInsert.setAge(20);
sqlsession.insert("com.lucas.mybatis.mapper.UserMapper.insertUser",userInsert);
System.out.println("------------------------------");
//修改一条数据
User userUpdate = new User();
userUpdate.setId(2);
userUpdate.setName("张三2" );
userUpdate.setAge(30);
sqlsession.update("com.lucas.mybatis.mapper.UserMapper.updateUser",userUpdate);
System.out.println("------------------------------");
//查询所有数据
List<User> user1All = sqlsession.selectList("com.lucas.mybatis.mapper.UserMapper.slelectAll");
for (User myUser : user1All) {
System.out.println(myUser);
}
System.out.println("------------------------------");
//删除数据
sqlsession.delete("com.lucas.mybatis.mapper.UserMapper.deleteUser",6);
sqlsession.commit(); //提交事务
sqlsession.close();//关闭连接
} catch (IOException e) {
e.printStackTrace();
}
}
}