Mybatis从0开始的例子

背景:从0开始,如果有了1,那么就有了入门的质变,没有了万事开头时的那种难受

来到这家公司已整整半年,作为初学者刚进公司时面对springmvc+mybatis这样自己很陌生的技术,是有点紧张的,担心工作不能顺利展开进行,幸好同事都很和气,我慢慢的在插科打诨中会搬会用了。但这终究不是正途,总会遇见配置问题或者细节上的问题,问同事也不能及时响应,耽误了自己工作不说,养成了蜻蜓点水,不求甚解的坏习惯。今天镇定思痛,将mybatis从0开始自己搭建使用,发现平时不得要领的细节,在其官方文档上都有详细赘述,就这样粗略扫完mybatis的官方文档,终于得到了一些浅浅的踏实与充实感。

步骤:具体源码传送门
1. 找到mybatis官方文档 (这是最科学有效的,但也最被忽视的)
2. 需要mybatis本身jar包和mysql驱动包
3. 书写mybatis配置文件(名字自取),读取配置文件生成SqlSessionFactory,创建SqlSession,操作数据库
注意:
1. 这里不再列出详细步骤,因为无论是官方文档亦或是博客文章,都表述得很好。
2. 工作中常用到的是,在mybatis配置文件中,可以设置mapUnderscoreToCamelCase(是否开启自动驼峰命名规则映射);multipleResultSetsEnabled 是否允许单一语句返回多结果集(需要兼容驱动);autoMappingBehavior 指定 MyBatis 应如何自动映射列到字段或属性等。
3.如果插入一个对象(更新)一个对象数据,如何获取其插入(更新)后的一些字段的值(比如id): useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。 keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。
<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
</insert>
4.resultMap 元素是 MyBatis 中最重要最强大的元素.
<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id" />
  <result property="username" column="user_name"/>
  <result property="password" column="hashed_password"/>
</resultMap>
总结:对mybatis,从一开始陌生,到过程中接触的惧怕,到最后的明白了然,这一个过程完全可以很短,但却是让我拖了半年之久。有时走的太远,就真的忘记当时的起点在哪里,最初的自我是什么了。另外自己工作中对spring的AOP的理解还是不清不楚,还有spring-security,memcached和事务管理的配置也不甚明白,以后定会陆续展开从0开始的例子。具体源码传送门
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringMVC 是一个基于Java的MVC框架,MyBatis 是一种持久化框架,它们常常一起使用来开发Web应用程序。下面是一个简单的SpringMVC结合MyBatis的selectOne代码例子: 1. 首先,在SpringMVC的配置文件中配置MyBatis的数据源和映射文件。 ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mydb" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath*:mapper/*.xml" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> ``` 2. 然后,创建一个数据访问对象(DAO)接口。 ```java public interface UserMapper { User selectOne(int id); } ``` 3. 接着,创建一个映射文件 UserMapper.xml。 ```xml <mapper namespace="com.example.dao.UserMapper"> <select id="selectOne" resultType="com.example.model.User"> SELECT * FROM users WHERE id = #{id} </select> </mapper> ``` 4. 最后,在控制器中使用该数据访问对象进行数据查询。 ```java @Controller public class UserController { @Autowired private UserMapper userMapper; @RequestMapping("/user/{id}") public String getUser(@PathVariable("id") int id, Model model) { User user = userMapper.selectOne(id); model.addAttribute("user", user); return "user"; } } ``` 以上代码例子演示了SpringMVC结合MyBatis进行数据库查询的过程,通过配置数据源、创建数据访问对象接口和映射文件,并在控制器中调用数据访问对象来实现查询功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值