- 浏览: 13596 次
- 性别:
- 来自: 广州
最新评论
文章列表
可以自定义一些TypeHandler来对一些字段进行特殊处理,例如将一个varchar字段转成一个JAVABean中的String数组。将JavaBean中的long转成Timestamp等。
需要注意的:
1. JavaBean中的成员类型只能是类,如果是基本类型的要改成对应的包装类。
2. 配置文件中,如果是insert、update类型的语句,需要在字段中定义类型或者typehandler。查询的结果如果是定义了ResultMap,可以在对应的列定义中定义typehandler。
3. TypeHandler对应的类型可以在xml中定义,也可以在代码中通过注解@MappedTypes和@ ...
基于上一篇的封装,实现一个UserDAO
接口:IUserDAO,也是在mybatis配置中对应的一个mapper接口
package example.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import example.model.User;
public interface IUserDAO {
public User findById(int id);
public User findByName(Stri ...
将session管理封装在一个类中,便于放到spring IOC中作为全局单例管理。
package example;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlS ...
mybatis支持在mapper中配置动态sql,根据传入参数确定sql语句中的where条件。个人认为框架支持动态sql是挺好的。不过如果编程之前能预知sql使用情况的,多写几个静态sql对于系统性能还是有好处的,毕竟动态sql还是需要做一次代码解析的。
mybatis的动态sql具体的机制包括:
1. if:普通的条件判断,比较适合在一个固定条件的前提下叠加动态条件。例如:
<select id="findUser3" resultMap="usermap">
select
a.id as user_id,
a.na ...
Mybatis中,DAO层的代码只需要定义接口,其他的事情由Mybatis框架帮忙搞定。一个例子:
package example.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import example.model.User;
public interface UserMapper {
public User findById(int id);
public User findByName(String name);
public void addUser ...
mybatis学习笔记2-复合类型查询
- 博客分类:
- JAVA
1. 使用association和collection标签进行复合类型查询
2. discriminator标签进行分类查询,感觉是为了实现继承类的ORMaping而存在的。
复合类型. User对象中包含一个Album列表. 注意collection标签中的column取值需要和User的sql中的列名对应,这里是user_id。取Album的sql中也用到这个列名:userid=#{user_id}
<resultMap type="User" id="userMapWithAlbum">
<id property=&qu ...
一个UserMapper
<mapper namespace="example.dao.UserMapper">
<resultMap type="User" id="usermap">
<result column="name" property="name" typeHandler="example.dao.typehandler.SimpleTypeHandler"/>
</resultMap>
< ...
摘自:http://blog.sina.com.cn/s/blog_74d6cedd0100vbu4.html
1. 尽可能的减少 HTTP 的请求数 [content]
合并背景图、缓存等
2. 使用 CDN(Content Delivery Network) [server]
也是缓存,加速,要考虑CDN失效、CDN缓存攻击等
3. 添加 Expires 头(或者 Cache-control ) [server]
会引起静态资源更新的问题,可采用somescript.js?v=1.0的方式来解决,但在发布新版本的时候会引起短暂页面错误。更好的办法是采用hash冗余。例如新版的index ...
1. 编译fdkaac
目标机器上缺省configure之后make会出现共享代码相关的错误,需要加上编译参数CFLAGS=-fPIC
./configure CFLAGS=-fPIC
make
make install
完成之后在/usr/local/lib/下会生成fdk-aac.so.0库文件及几个软链
2. 编译ffmpeg
需求是使用ffmpeg+fdkaac来将音源转成aac,其他选项暂时无视。
./configure --prefix=MYDIR --enable-libfdk-aac --disable-yasm
make
make install
完成后ffmpeg安装到MY ...
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数
int
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整 ...