mybatis极大的简化了数据库的操作,可以用很简单的方法操作数据库
注意每一个mapper.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>
<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/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!-- 每一个mapper.XML都需要在mybatis核心配置文件中注册-->
<mappers>
<mapper resource="dao/UserMapper.xml"></mapper>
</mappers>
</configuration>
实例对象,供数据库对象操作
package pojo;
public class User {
private int id;
private String name;
private String pwd;
public User(){
}
public User(int id,String name,String pwd){
this.id = id;
this.name = name;
this.pwd = pwd;
}
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
直接分配sqlSession给用户,不需要再单独创建
package utils;
//sqlSessionFactory工厂模式
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resourse = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resourse);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
UserDao接口供其调用,UserMapper相当于简单化的UserDaoImpl实现类,在其中可以使用简单的标签就可以对数据库进行操作,
UserDao接口
package dao;
import pojo.User;
import java.util.List;
import java.util.Map;
public interface UserDAO {
List<User> getUserList();
User selectUserById(int id);
User selectUserByNameId(Map<String,Object> map);
int addUser(User user);
int updateUser(@Param("id") int id, @Param("name") String name, @Param("pwd") String pwd);
int deleteUser(int id);
}
}
UserMapper .xml
<?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="dao.UserMapper">
<select id="getUserList" resultType="pojo.User">
select * from mybatis.user
</select>
<!--根据id查找用户-->
<select id="selectUserById" resultType="pojo.User">
select * from mybatis.user where id = #{id}
</select>
<!--根据name和id查找用户-->
<select id="selectUserByNameId" resultType="pojo.User" parameterType="map">
select * from mybatis.user where name = #{name} and pwd = #{pwd}
</select>
<!--给数据库增添一个用户 parameterType-->
<insert id="addUser" parameterType="pojo.User">
insert into user(id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<!--根据用户的id更新数据库的信息-->
<update id="updateUser" >
update mybatis.user set name = #{name}, pwd = #{pwd} where id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>
</mapper>
在标签内需要传入多个参数时,可以在接口方法中使用@Param("string") string id定义来使用传入多个参数