千家信息网

MyBatis简单配置及简单查询

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,1.把所需jar(mysql-connector-java-5.1.18-bin.jar和mybatis-3.3.0.jar)拷贝到lib目录下2.编写与数据库对应的实体类UserInfo3.创建my
千家信息网最后更新 2025年01月21日MyBatis简单配置及简单查询

1.把所需jar(mysql-connector-java-5.1.18-bin.jar和mybatis-3.3.0.jar)拷贝到lib目录下


2.编写与数据库对应的实体类UserInfo


3.创建mybatis-config.xml配置文件:

                                                                                  


4.创建DBFactory类获取SqlSessionFactory

/** * 访问数据库类 */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");//第二个参数:指定需要连接的数据库配置                                        } catch (IOException e) {                                            e.printStackTrace();                }        }        public static SqlSessionFactory getFactory(){                return sqlSessionFactory;        }

或者

/** * 访问数据库类 */public class DBAccess {        public SqlSession getSqlSession() throws IOException{                                //(1)通过配置文件获取数据库连接相关信息
Reader reader = Resources.getResourceAsReader("com/wc/config/Configuration.xml"); //(2)通过配置信息构建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,"mysql"); //(3)通过SqlSessionFactory打开数据库回话 SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; }}


5.创建mybatis的sql映射文件userinfo.xml

:对应接口,统一命名空间,重要!

resultMap: property对应实体类属性,column 对应着数据库字段

sql语句:

id="selectUserByInterface" 唯一标识

parameterType="java.lang.Integer" 参数的类型

resultMap="userResult" 返回类型

select from user_info order by user_id

user_id,user_name,user_sex

                           

6.通过接口的方式调用XML的查询语句(面向接口式编程)

public interface IUserInfo {                /**         * 根据user_id查询单个信息         */        public UserInfo selectOneUserByInterface(int i);                        /**         * 查询全部信息         */        public List selectUserByInterface();        }

7.从SqlSessionFactory里面获取SqlSession:DBFactory.getFactory().openSession();

在从SqlSession拿到增删修查一系列方法

/** * 使用接口的方式进行全部查询 */@Testpublic void selectUserByInterface() {        List  userInfo = new ArrayList();        // 获取sqlSession        SqlSession session = null;        try {                // 从SqlSessionFactory里获取SqlSession                session = DBFactory.getFactory().openSession();                //接口                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();                }               }}/** * 使用接口的方式进行单条查询 */@Testpublic void selectOneUserByInterface() {        // 获取sqlSession        SqlSession session = null;        try {                // 从SqlSessionFactory里获取SqlSession                session = DBFactory.getFactory().openSession();                //UserInfo userInfo = session.selectOne("userinfo.selectOneUser",3);userinfo是以前的命名空间                IUserInfo iUserInfo = session.getMapper(IUserInfo.class);                UserInfo userInfo = iUserInfo.selectOneUserByInterface(3);                System.out.println(userInfo);        } catch (Exception e) {        } finally {                if (session != null) {                        session.close();                }        }}

最后关闭SqlSession


0