发表于: 2018-03-17 22:58:43
1 630
今日完成
回复:
与1L使用的是什么手法,还可以怎么做?
强制类型转换
用Java中的方法进行类型转换,比如:
String——int:
int i=Integer.parseInt([String]);
Int i=Integer.valueOf(str).intValue();
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
int——String:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
理解一行代码,首先需要具备什么?然后还需要怎么做才算吃透了这个知识点?
首先需要了解代码每个部分所代表的含义,再看这段代码实现了什么功能。吃透知识点的话天才靠天赋,否则就只有多多练习了。
排错的过程中我们可以学到什么?
可以从排错中学习到程序是怎么一步步运行
今天整合了spring和mybatis
项目结构
dao文件
@Repository
public interface UserDao {
void addUser(User user);
List<User> getAllUser();
void updateUser(User user);
void deleteUser(int id);
}
user Mapper映射文件
<mapper namespace="com.ycc.dao.UserDao">
<insert id="addUser" parameterType="com.ycc.model.User" >
insert into myuser(name,age,recommend) values(#{name},#{age},#{recommend})
</insert>
<select id="getAllUser" resultType="com.ycc.model.User">
select * from myuser
</select>
<update id="updateUser" parameterType="com.ycc.model.User">
update myuser set name=#{name},age=#{age},recommend=#{recommend} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int" >
delete from myuser where id=#{id}
</delete>
</mapper>
User类省略
C3p0.xml和druid.xml分别是数据库连接池的配置文件,config.properties是数据库的连接信息。
Spring.xml配置文件如下:
<!-- 引入属性文件 -->
<context:property-placeholder location="classpath:config.properties" ignore-unresolvable="true" />
<!-- 自动扫描(自动注入) -->
<context:component-scan base-package="com.ycc.dao"/>
<!-- 开启注解 -->
<context:annotation-config />
<!-- 一、使用数据库连接池注册数据源,引入相关的配置文件 -->
<import resource="c3p0.xml"/>
<!-- 二、创建mybatis会话工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:com/ycc/mapper/*Mapper.xml"/>
</bean>
<!-- 三、创建mybatis会话template -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<!-- 注册接口类的bean,使得程序中可以用注解方式获取 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ycc.dao" />
</bean>
测试类
public class TestUser {
@Autowired
UserDao userDao;
@Test
public void addUserTest() {
User user=new User();
user.setName("火影忍者中文网");
user.setAge(23);
user.setRecommend("限价房");
userDao.addUser(user);
System.out.println(user);
}
@Test
public void getAllUser() {
List<User> listUser=userDao.getAllUser();
System.out.println(listUser);
}
@Test
public void updateUser() {
User user = new User();
user.setName("gaigaigaigai");
user.setAge(22);
user.setRecommend("haoahaohao");
user.setId(1);
userDao.updateUser(user);
System.out.println(user);
}
@Test
public void deleteUser() {
userDao.deleteUser(2);
}
}
之前运行的时候报了错,原因是格式写错了
改为
运行结果
说一下,配置文件中用的几个标签
<context:component-scan base-package="com.ycc.dao"/>
表明com.ycc.dao包及其子包中,如果某个类的头上带有特定的注解
@Component,@Repository,@Service,@Controller,就会将这个对象作为Bean注册进Spring容器。
<context:annotation-config>
是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。
<context:property-placeholder
location="属性文件,多个之间逗号分隔"
ignore-unresolvable="是否忽略解析不到的属性,如果不忽略,找不到将抛出异常"
/> 提供了外在化参数配置的方式,比如db.properties
<context:spring-configured/>
Spring可以为IOC容器里的bean进行依赖注入,但如果某些类,没有配置在IOC里,比如一些Domain Object,是否也可以依赖注入?答案是肯定的
以User 为例,该User并没有配置在IOC理,但我想对其里面的一个UserDao进行依赖注入,其代码如下:
@Configurable(autowire = Autowire.BY_NAME, dependencyCheck = false)
public class User {
private String UserName;
....
private UserDao userDao;
...
@Autowired
public void setUserDao〔UserDao userDao〕{
this.userDao=userDao.
}
}
遇到的问题
刚开始不理解,spring怎么和mybatis整合的,后来根据教程写了个例子,实现以后跟着程序的思路去理解,慢慢的就掌握了一部分。
明日计划
看看ssm框架,学习junit和打印日志
收获
学习了怎么整合spring+mybatis
评论