記錄一下本身學習mybatis的過程java
整個工程項目目錄以下:mysql
pom.xml配置以下:git
<?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>lpp</groupId> <artifactId>mybatisTest</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
mybatis的配置文件以下:sql
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias type="com.lpp.test.po.Car" alias="car"/> </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/test"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> <mappers> <mapper resource="config/SqlMapper/CarMapper.xml"/> </mappers> </configuration>
建立一個實體類,car.javaapache
package com.lpp.test.po; /** * Created with IntelliJ IDEA. * Description: * User: lpp * Date: 2018-04-16 * Time: 11:06 */ public class Car { int id; String car_name; int maxSpeed; public Car() { } public Car(int id, String carName, int maxSpeed) { this.id = id; this.car_name = car_name; this.maxSpeed = maxSpeed; } public int getId() { return id; } public String getCar_name() { return car_name; } public int getMaxSpeed() { return maxSpeed; } public void setId(int id) { this.id = id; } public void setName(String car_name) { this.car_name = car_name; } public void setMaxSpeed(int maxSpeed) { this.maxSpeed = maxSpeed; } @Override public String toString() { return "Car{" + "id=" + id + ", name='" + car_name + '\'' + ", maxSpeed=" + maxSpeed + '}'; } }
建立carMapper.xmlsession
<?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.lpp.test.impl.carMapper"> <select id="findCarbyId" parameterType="int" resultType="Car"> SELECT * FROM t_car WHERE id = #{id} </select> <select id="findCarbyIdAndName" resultType="Car"> SELECT * FROM t_car WHERE id = #{id} AND car_name = #{car_name}; </select> <select id="findCarbyIdAndSpeed" resultType="Car"> SELECT * FROM t_car WHERE id = #{id} AND maxSpeed = #{maxSpeed}; </select> </mapper>
建立carMapper接口 carMapper.javamybatis
package com.lpp.test.impl; import com.lpp.test.po.Car; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * Created with IntelliJ IDEA. * Description: * User: lpp * Date: 2018-04-17 * Time: 19:44 */ public interface carMapper { public Car findCarbyId(int id); public Car findCarbyIdAndName(@Param("id") int id, @Param("car_name") String car_name); //@Select("SELECT * FROM t_car WHERE id = #{id} AND maxSpeed = #{maxSpeed}") public Car findCarbyIdAndSpeed(Car car); }
前期工做已經完成了。如今建立測試類app
CarDaoImplTest.java
package com.lpp.test; import com.lpp.test.impl.carMapper; import com.lpp.test.po.Car; 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 org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; /** * Created with IntelliJ IDEA. * Description: * User: lpp * Date: 2018-04-16 * Time: 11:21 */ public class CarDaoImplTest { private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException { String resource = "config/SqlMapConfig.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } @Test public void testFindUserById(){ SqlSession sqlSession = sqlSessionFactory.openSession(); Car car = null; Car car1 = new Car(); try { //car = sqlSession.selectOne("test.findCarbyId",1); carMapper carMapper = sqlSession.getMapper(carMapper.class); //car = carMapper.findCarbyId(1); //car = carMapper.findCarbyIdAndName(1,"aodi"); car1.setId(1); //car1.setName("aodi"); car1.setMaxSpeed(280); car = carMapper.findCarbyIdAndSpeed(car1); }catch (Exception e){ e.printStackTrace(); }finally { sqlSession.close(); } System.out.println(car); } }
右擊運行測試,獲得結果maven
查詢出數據 大功告成。ide
最後附上gitee的地址:https://gitee.com/LL7_s/personal_test_code_sorting/tree/master/mybatisTest
能夠自行查閱。新手上路,請各位多多關照。