首页 > 编程语言 >第一个mybatis程序

第一个mybatis程序

时间:2024-05-10 10:13:11浏览次数:28  
标签:xml 第一个 程序 id String pwd mybatis public name

注意与之前JDBC的区别,简化在哪里

  1. 准备工作

    数据库,表的创建:

    创建一个名为mybatis的数据库,在其中创建user表,字段为is,name,pwd

    项目的准备:

    新建一个普通的maven项目作为父项目,删除src目录,在pom文件中导入必要的依赖(mysql-connector-java,mybatis,junit),创建第一个子项目,选择父项目;

  2. 第一个mybatis程序

    • 在resource目录中创建mybatis-config.xml配置文件,配置数据库驱动,url,name,password等信息,以及!扫描的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>
        <environments default="development">
            <!--可以配置多个不同的环境,都是固定配置,看mybatis开发手册-->
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <!--配置url时要注意,可能需要时区的配置,且&在xml文件中需要转义-->
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8&amp;useSSl=true"/>
                    <property name="username" value="root"/>
                    <property name="password" value=123456"/>
                </dataSource>
            </environment>
        </environments>
        <!--这个是一定一定要注意的,你得配置才能找到对应的sql文件-->
        <mappers>
            <mapper resource="com/test/dao/DaoMapper.xml"/>
        </mappers>
    </configuration>
    

    *创建mybatis工具类,用它来连接数据库,并获取到执行sql语句的对象

    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 sqlSession;
        static {
            try {
            	// 1.第3步中数据库配置文件的路径
                String resource = "mybatis-config.xml";
                // 2.以数据流的形式获取到内容
                InputStream inputStream = Resources.getResourceAsStream(resource);
                // 3.从XML配置文件构建SqlSessionFactory实例用于执行sql语句
                sqlSession = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        // 4. 获得处理sql语句的对象SqlSession
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }
    }
    

    *创建对应于表字段的实体类

    public class User {
        private int id;
        private String name;
        private String pwd;
        
        public User(){}
    
        public User(int id, String name, String pwd) {
            this.id = id;
            this.name = name;
            this.pwd = pwd;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
        
    	@Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", pwd='" + pwd + '\'' +
                    '}';
        }
    }
    

    *写dao层也就是mapper层,接口以及对应的实现类,接口还是照常写,但是之前的实现类为了java代码与sql语句分离,实现类用mapper.xml代替

    import java.util.List;
    
    public interface UserMapper {
        List<User> getUserList();
    }
    

    可以在此目录下直接创建mapper.xml,但要注意,只有resource目录下的配置文件才能读取到,若在此目录下直接号才能构建mappper.xml,需要在maven父子项目中导入以下配置

    <build>
            <!--扫描到java和resources下的xml等资源文件-->
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                        <include>**/*.xml</include>
                        <include>**/*.tld</include>
                        <include>**/*.properties</include> <!--properties文件-->
                    </includes>
                    <!--这里写成true会造成编译注释错误-->
                    <filtering>false</filtering>
                </resource>
     
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.xml</include>
                        <include>**/*.properties</include> <!--properties文件-->
                    </includes>
                    <!--这里写成true会造成编译注释错误-->
                    <filtering>false</filtering>
                </resource>
     
            </resources>
        </build>
    

    *创建与接口对应的mapper.xml文件

    <?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">
    
    <!-- namespace:绑定对应Mapper接口 -->
    <mapper namespace="com.test.dao.UserMapper">
        <!-- id=接口方法名  resultType=接口返回的类型 -->
        <select id="getUserList" resultType="com.test.pojo.User">
            select * from mybatis.user
        </select>
    </mapper>
    

    *进行测试

    public class UserMapperTest {
        @Test
        public void test(){
            // 1.利用MybatisUtils获取执行sal的对象sqlSession
            SqlSession sqlSession = MybatisUtils.getSqlSession();
    
            // 2.获取并执行sql语句 方法:getMapper
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //已经将sql查询出来的结果自动变为java对象了
            List<User> userList = mapper.getUserList();
            // 输出结果
            for (User user : userList) {
                System.out.println(user);
            }
    
            // 3.关闭sqlSession连接
            sqlSession.close();
        }
    }
    

标签:xml,第一个,程序,id,String,pwd,mybatis,public,name
From: https://www.cnblogs.com/hytip/p/18183663

相关文章

  • Qt使用QHttpMultiPart发送文件和检查本地程序版本号
    发送一个文件到指定的服务器地址QNetworkAccessManager*manager=newQNetworkAccessManager(this);QUrlurl("http://172.16.21.47:8889/financeContract/financeContractRecordDataImport");//替换为你的上传URL QNetworkRequestrequest(url);QHttpMultiPart*multiPar......
  • 黑马程序-实战篇
    1、SpringValidationSpring提供的一个参数校验框架,使用预定义的注解完成参数校验步骤:1、引入SpringValidation起步依赖<!--validation依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo......
  • Mybatis基础知识
    什么是mybatis?mybatis是一款用于持久层的、轻量级的半自动化ORM框架,封装了所有jdbc操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射。框架用于持久层,就是说这个框架是和数据库进行交互的,用于数据库中数据操作的框架轻量级框架的概念可以简单的理......
  • MyBatis-Plus随手笔记
    1使用MyBatisPlus插件来自动化创建从数据库表生成相应的实体类User和映射文件。这一过程的说明说明;根据数据库表生成对应的基本的crud代码和Entity类,可以参考renren代码生成器,以前在hspliving分布式项目中使用过!参考老韩在hspliving-commodity中crud代码的自动生成过程视频,......
  • LLM生态下爬虫程序的现状与未来
    最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如JinaReader和FireCrawl,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如markdown,这类本质上还是传统的爬虫解决方案。还有一类是通过LLM+agent工作流方式来构建的下一代爬虫程序,比如Skyvern、......
  • FastUI:快速构建Web应用程序界面
    简介FastUI是一种全新的构建Web应用程序用户界面的方式,它是由声明式的Python代码定义的。它旨在为Python开发人员和前端开发人员提供一种简单而强大的工具,以便他们能够更高效地构建响应式的Web应用程序界面,而无需处理繁杂的JavaScript代码或底层的技术细节。FastUI的优势•......
  • springboot整合mybatis自动生成框架
    1、添加自动生成配置在根目录下创建:mybatis-generate.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybat......
  • 微信小程序使用微信云托管添加自定义域名并转发到pexels.com
    背景:我要在小程序上显示pexels.com上的图片,然后我得先把pexels.com的域名添加到小程序的request合法域名中,但是pexels.com是国外的,在国内没有备案所以添加不了。解决方案就是:用一个已经备案好的域名进行转发,转发的服务器我选择的是微信云托管,备案好的域名还需要ssl,没有的话本文会......
  • Mybatis if判断中使用了Ognl关键字导致报错解决方法
    mybatisxml中使用OGNL解析参数,如果直接使用了关键字则会导致解析失败。常见的关键字有:字段mybatis关键字bor(字符|)的英文xor字符^的英文and字符&&band字符&ed字符==neg字符!=lt字符<gt字符>lte字符<=......
  • springboot整合mybatis-plus手动配置
    1、添加依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><dependency>......