MyBatis入门

1、首先下载必要的jar包,包括:mybatis-***.jar、mysql-connector-java-***.jar、commons-logging-***.jar

2、在创建的项目中,建立一个properties文件,这里取名mysql.properties:

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mydata?serverTimezone=GMT

jdbc.username=root

jdbc.password=xushiyu

在这个文件中存放了一些jdbc的配置参数

3、建立一个名为mybatis.cfg.xml文件:

<?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>

  <!-- 引入外部配置文件,这里的配置文件为jdbc的配置文件的路径+文件名 -->
  <properties resource="SQLTest/mysql.properties"></properties>
   
   <!-- 配置mybatis运行环境 -->
     <environments default="cybatis">
        <environment id="cybatis">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />
            
            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <dataSource type="POOLED">
                <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> 

 
</configuration>

4、创建一个实体对象

public class user {
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getMark() {
        return mark;
    }
    public void setMark(int mark) {
        this.mark = mark;
    }
    private int id;
    private String grade;
    private int age;
    private int mark;
    
    
    public String toString() {
        return "id is "+id
                +",grade is "+grade
                +",age is "+age
                +"mark is "+mark;
        
    }

}

5、创建一个mapper.xml,这里主要配置了处理数据库的语句以及返回的结果,可以配置多个

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="SQLTest.Dao">
<!-- 自定义返回结果集,id作为以下用的字段,type表示bean的位置 -->
   <resultMap id="userMap" type="SQLTest.user">
        <!--property与bean对象中的字段相同, column和数据库中的字段名称相同></id>-->
        <result property="id" column="id" javaType="java.lang.Integer"></result>
        <result property="age" column="age" javaType="java.lang.Integer"></result>
        <result property="mark" column="mark" javaType="java.lang.Integer"></result>
        <result property="grade" column="grade" javaType="java.lang.String"></result>
    </resultMap>
<!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->    
<!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys 
            方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->    
<!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
<!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值  -->

 

<!--使用类似vo的形式返回数据<select id="selectAllUser" resultType="SQLTest.user">-->   

<!--使用集合的形式返回数据<select id="selectAllUser" resultType="java.util.HashMap">-->   

<select id="selectAllUser" resultMap="userMap">
     select * from users
    </select>


</mapper>

6、创建一个接口,内含所有mapper中sql语句对应id的方法:

public interface  Dao {
    public List<user> selectAllUser();
}

7、创建工具类,获取SqlSession对象

public class DBTools {
    public static SqlSessionFactory sessionFactory;
    
    static{
        try {
            //使用MyBatis提供的Resources类加载mybatis的配置文件
            Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");//这里即为实际文件的地址
            //构建sqlSession的工厂
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    //创建能执行映射文件中sql的sqlSession
    public static SqlSession getSession(){
        return sessionFactory.openSession();
    }
    
}

7、测试。。。。。。

 Dao dao=sql.getMapper(Dao.class);
 List<user>list=dao.selectAllUser();
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验进一步验证书中提出的理论和技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值