Mybatis--->固定套路
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 父工程--> <groupId>org.example</groupId> <artifactId>Maven04</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>Maven4</module> </modules> <!--依赖--> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build> </project>
最后这个<build>很重要 ,不然读不到配置文件
2、配置mybatis-config.xml(每一个Mapper都需要注册)
<?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> <properties resource="db.properties"> </properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${name}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers>
//class定位类的属性
<mapper class="com.xian.pojo.Student"/>
<mapper resource="com/xian/dao/TeacherMapper"/>
</mappers>
</configuration>
3、配置db.properties
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&useUnicode=ture&characterEncoding=UTF-8 name=root password=123456
4、编写MybatisUtils类
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 java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; // InputStream inputStream = Resources.getResourceAsStream(resource); InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlsession(){ return sqlSessionFactory.openSession(); } }
5、UserMapper接口和UserMapper.xml
-
接口只需写明返回值类型和方法名(每一个接口对应一个Mapper,接口和Mapper的名字要一致)
import com.xian.pojo.User; import com.xian.pojo.User2; import java.util.List; import java.util.Map; public interface UserMapper { //查询所有 List<User> getUserList(); //查询用户BYid User getUserById(int id); //添加用户 int add(User user); //修改 int upData(User user); int upData2(Map<String,Object> map); //删除 int delete(int id); //修改User2密码,根据id改密码 int updata3(Map<String,Object> map); List<User2> selectAll(); //User2 模糊查询 List<User> selectLittle(String name); //Limit 分页 List<User> Limit(Map<String,Integer> map); }
-
接口对应的Mapper.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.xian.dao.UserMapper"> <resultMap id="UserMap" type="com.xian.pojo.User"> </resultMap> <select id="getUserList" resultType="user"> select * from testdb.test001 </select> <select id="getUserById" resultType="com.xian.pojo.User"> select * from testdb.test001 where id=#{id} </select> <insert id="add" parameterType="com.xian.pojo.User"> insert into testdb.test001 (id,name) values (#{id},#{name}) </insert> <delete id="delete" parameterType="int"> delete from testdb.test001 where id=#{id} </delete> <update id="upData" parameterType="com.xian.pojo.User"> update testdb.test001 set name=#{name} where id=#{id} </update> <update id="upData2" parameterType="map"> update testdb.test001 set name=#{username} where id=#{userid} </update> <update id="updata3" parameterType="map"> update testdb.test002 set pwd=#{userPwd} where id=#{userId} </update> <select id="selectAll" resultType="com.xian.pojo.User2"> select * from testdb.test002 </select> <select id="selectLittle" resultType="com.xian.pojo.User"> select * from testdb.test001 where name LIKE #{name} </select> <!-- <select id="Limit" resultMap="com.xian.pojo.User" parameterType="map">--> <!-- select * from testdb.test001 limit #{index},#{end}--> <!-- </select>--> <select id="Limit" resultType="user" parameterType="map"> select * from testdb.test001 limit #{index},#{end } </select> </mapper>
6、测试
@Test public void test001(){ SqlSession sqlsession = MybatisUtils.getSqlsession(); UserMapper mapper = sqlsession.getMapper(UserMapper.class); List<User> userList = mapper.getUserList(); for (User user : userList) { System.out.println(user); } sqlsession.close(); }