日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用mybatis的Vo对象简单完成需求查询

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用mybatis的Vo对象简单完成需求查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.題目

  • 模糊查詢 like
    查詢表中name為2個字的同學信息
    查詢表中姓張的同學的所有信息
  • 范圍查詢
    查詢表中年齡在20~24歲之間同學的信息
  • 綜合查詢:查詢名為張某,年齡在30歲以下的所有信息
  • 以上查詢均用vo作為傳值對象
  • 2.在pom.xml中導入需要的jar包

    <dependencies><!-- mybatis核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency><!-- mysql驅動包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><!-- junit測試包 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- 日志文件管理包 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.12</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.12</version></dependency></dependencies>

    3.新建一個pojo類叫做User與數據庫的列名對應

    package com.jl.pojo;import java.io.Serializable; public class User implements Serializable {private int id;private String username;private int age;public User() {}public User(int id, String username, int age) {this.id = id;this.username = username;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", age=" + age +'}';}

    4.新建一個vo類叫做UserVo需要傳遞的參數

    package com.jl.vo; public class UserVo {private String firstName;private String name;private int max;private int min;private int age;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getMax() {return max;}public void setMax(int max) {this.max = max;}public int getMin() {return min;}public void setMin(int min) {this.min = min;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public UserVo() {}public UserVo(String firstName, String name, int max, int min, int age) {this.firstName = firstName;this.name = name;this.max = max;this.min = min;this.age = age;}@Overridepublic String toString() {return "UserVo{" +"firstName='" + firstName + '\'' +", name='" + name + '\'' +", max=" + max +", min=" + min +", age=" + age +'}';} }

    5.配置mybatis的配置文件

    • 在resources文件夾下新建映射文件夾mapper,在mapper文件夾下面創建一個UserMapper.xml
    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.jl.pojo.User"><!--這里是寫你的pojo--> <!-- 查詢表中name為2個字的同學信息--> <!-- sql:SELECT *FROM USER WHERE username LIKE '__'--><select id="findByName" parameterType="com.jl.vo.UserVo" resultType="com.jl.pojo.User">select *from user where username like #{name}</select> <!-- 查詢表中姓張的同學的所有信息--> <!-- sql:SELECT *FROM USER WHERE username LIKE '張%'--><select id="findByFirstName" parameterType="com.jl.vo.UserVo" resultType="com.jl.pojo.User">select *from user where username like #{firstName}</select> <!-- 查詢表中年齡在20~24歲之間同學的信息--> <!-- 查詢表中年齡在20~24歲之間同學的信息--><select id="findByAge" parameterType="com.jl.vo.UserVo" resultType="com.jl.pojo.User">select *from user where age between #{min} and #{max}</select> <!-- 綜合查詢:查詢名為張某,年齡在30歲以下的所有信息--> <!-- sql:SELECT *FROM USER WHERE username LIKE '張%' AND age <=30--><select id="find" parameterType="com.jl.vo.UserVo" resultType="com.jl.pojo.User">SELECT *FROM USER WHERE username LIKE #{firstName} AND age &lt;=#{age}</select></mapper>
    • 在resources文件夾下新建mysql.properties文件,存儲數據庫連接信息
    jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8 jdbc.username=root jdbc.password=root
    • 在resources文件夾下創建mybatis-config.xml文件,存儲mybatis配置信息
    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="mysql.properties"/><settings><!--全局性設置懶加載。如果設為‘false’,則所有相關聯的都會被初始化加載,默認值為false--><setting name="lazyLoadingEnabled" value="true"/><!--當設置為‘true’的時候,懶加載的對象可能被任何懶屬性全部加載。否則,每個屬性都按需加載。默認值為true--><setting name="aggressiveLazyLoading" value="false"/></settings><typeAliases><!-- 其實就是將bean的替換成一個短的名字--><typeAlias type="com.jl.pojo.User" alias="User"/></typeAliases><!--對事務的管理和連接池的配置--><environments default="development"><environment id="development"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><!--POOLED:使用Mybatis自帶的數據庫連接池來管理數據庫連接--><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--mapping文件路徑配置--><mappers><mapper resource="mapper/UserMapper.xml"/></mappers></configuration>

    6.新建一個dao包,創建一個BaseDao類,用于封裝獲取sqlSession的方法

    package com.jl.dao;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.Reader; public class BaseDao {protected SqlSession getSqlSession(){String fileName = "mybatis-config.xml";Reader reader = null;try {reader = Resources.getResourceAsReader(fileName);} catch (IOException e) {e.printStackTrace();}SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);SqlSession sqlSession = sqlSessionFactory.openSession();//數據庫連接會話,非jsp的session,切勿搞混。return sqlSession;} }

    7.新建一個UserDao繼承這個BaseDao然后就可以直接使用它的方法

    package com.jl.dao;import com.jl.pojo.User; import com.jl.vo.UserVo; import org.apache.ibatis.session.SqlSession;import java.util.List;/*** @author Lee* @date 2019-05-07 17:53*/ public class UserDao extends BaseDao {/***查詢表中name為2個字的同學信息* @param userVo* @return*/public List<User> findByName(UserVo userVo){SqlSession sqlSession = this.getSqlSession();List<User> userList=sqlSession.selectList("findByName",userVo);sqlSession.close();return userList;}/*** 查詢表中姓張的同學的所有信息* @param userVo* @return*/public List<User> findByFirstName(UserVo userVo){SqlSession sqlSession = this.getSqlSession();List<User> userList=sqlSession.selectList("findByFirstName",userVo);sqlSession.close();return userList;}/*** 查詢表中年齡在20~24歲之間同學的信息* @param userVo* @return*/public List<User> findByAge(UserVo userVo){SqlSession sqlSession = this.getSqlSession();List<User> userList=sqlSession.selectList("findByAge",userVo);sqlSession.close();return userList;}/*** 綜合查詢:查詢名為張某,年齡在30歲以下的所有信息* @param userVo* @return*/public List<User> find(UserVo userVo){SqlSession sqlSession = this.getSqlSession();List<User> userList=sqlSession.selectList("find",userVo);sqlSession.close();return userList;}}

    8. 在test包里面創建一個UserTest

    package com.jl;import com.jl.dao.UserDao; import com.jl.pojo.User; import com.jl.vo.UserVo; import org.junit.Test;import java.util.List;public class UserTest {UserDao userDao = new UserDao();UserVo userVo = new UserVo();User user = new User();/*** 查詢表中name為2個字的同學信息*/@Testpublic void findByName() {userVo.setName("__");List<User> userList = userDao.findByName(userVo);System.out.println(userList);}/*** 查詢表中姓張的同學的所有信息*/@Testpublic void findByFirstName() {userVo.setFirstName("張%");List<User> userList = userDao.findByFirstName(userVo);System.out.println(userList);}/*** 查詢表中年齡在20~24歲之間同學的信息*/@Testpublic void findByAge() {userVo.setMin(20);userVo.setMax(24);List<User> userList = userDao.findByAge(userVo);System.out.println(userList);}/*** 綜合查詢:查詢名為張某,年齡在30歲以下的所有信息*/@Testpublic void find(){userVo.setFirstName("張%");userVo.setAge(30);List<User> userList = userDao.find(userVo);System.out.println(userList);} }

    總結

    以上是生活随笔為你收集整理的使用mybatis的Vo对象简单完成需求查询的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。