MyBatis simple configuration and simple query
1. Copy the required jar (mysql-connector-java-5.1.18-bin.jar and mybatis-3.3.0.jar) to the lib directory
two。 Write the entity class UserInfo corresponding to the database
3. Create a mybatis-config.xml profile:
4. Create a DBFactory class to get SqlSessionFactory
/ * access database class * / public class DBFactory {public static SqlSessionFactory sqlSessionFactory = null; static {try {String resource = "com/wc/config/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream (resource); sqlSessionFactory = new SqlSessionFactoryBuilder () .build (inputStream, "mysql") / / second parameter: specify the database configuration to be connected} catch (IOException e) {e.printStackTrace ();}} public static SqlSessionFactory getFactory () {return sqlSessionFactory;}
Or
/ * access database class * / public class DBAccess {public SqlSession getSqlSession () throws IOException {/ / (1) obtain database connection related information through configuration file
Reader reader = Resources.getResourceAsReader ("com/wc/config/Configuration.xml"); / / (2) build SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (reader, "mysql") through configuration information; / / (3) Open database via SqlSessionFactory SqlSession sqlSession = sqlSessionFactory.openSession (); return sqlSession;}}
5. Create a sql mapping file userinfo.xml for mybatis
: corresponding interface, unified namespace, important!
ResultMap: property corresponds to entity class attributes, and column corresponds to database fields
Sql statement:
Id= "selectUserByInterface" unique identity
Type of parameterType= "java.lang.Integer" parameter
ResultMap= "userResult" return type
Select from user_info order by user_id
User_id,user_name,user_sex
Select from user_info order by user_id select from user_info where user_id=# {userID}
6. Call the query statement of XML through interface (interface-oriented programming)
Public interface IUserInfo {/ * query single information based on user_id * / public UserInfo selectOneUserByInterface (int I); / * * query all information * / public List selectUserByInterface ();}
7. Get SqlSession:DBFactory.getFactory (). OpenSession () from SqlSessionFactory
After getting the addition, deletion, modification and check from SqlSession, a series of methods
/ * all queries are made using the API * / @ Testpublic void selectUserByInterface () {List userInfo = new ArrayList (); / / get sqlSession SqlSession session = null; try {/ / get SqlSession session = DBFactory.getFactory (). OpenSession () from SqlSessionFactory / / Interface IUserInfo iUserInfo = session.getMapper (IUserInfo.class); userInfo = iUserInfo.selectUserByInterface (); if (userInfo! = null & & userInfo.size () > 0) {for (UserInfo user: userInfo) {System.out.println (user) } catch (Exception e) {} finally {if (session! = null) {session.close () } / * make a single query using the interface * / @ Testpublic void selectOneUserByInterface () {/ / get sqlSession SqlSession session = null; try {/ / get SqlSession session = DBFactory.getFactory () .openSession () from SqlSessionFactory / / UserInfo userInfo = session.selectOne ("userinfo.selectOneUser", 3); userinfo is the previous namespace IUserInfo iUserInfo = session.getMapper (IUserInfo.class); UserInfo userInfo = iUserInfo.selectOneUserByInterface (3); System.out.println (userInfo) } catch (Exception e) {} finally {if (session! = null) {session.close ();}
Finally, close SqlSession.