下面是关于iBATIS部分的javascript
使用的是 c3p0的数据库链接池java
配置文件以下:mysql
<!-- 链接池 -->spring
<bean id="ds1" class="com.mchange.v2.c3p0.ComboPooledDataSource">sql
<property name="driverClass" value="com.mysql.jdbc.Driver"/>数据库
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/maven?useUnicode=true&characterEncoding=utf8"/>session
<property name="user" value="root"/>app
<property name="password" value="root"/> jsp
</bean> maven
<!-- 对应的映射文件 -->
<bean id="sqlMapClient1" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/classes/SqlMaps-template.xml"></property>
<property name="dataSource" ref="ds1"/>
</bean>
<!-- 事务管理 -->
<bean id="tm1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds1"/>
</bean>
<tx:annotation-driven transaction-manager="tm1" />
查询
typeAlias 是定义一个别名,在引用的时候就不须要每次都输入包名+类名,只需一次引用
<typeAlias alias="Login" type="com.jokingus.model.pojo.Login" />
<typeAlias alias="User" type="com.jokingus.model.User" />
<select id="login" parameterClass="Login" resultClass="User" >
<![CDATA[
select * from users where uid = #uid# and pwd=#pwd# limit 1
]]>
</select>
使用:User user=(User) sqlMapClient.queryForObject("User.login",pojo);
注意:pojo这个对象的属性要与 <select>中的参数彻底对应,即
public class Login {
private int uid;
private String pwd;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
而返回的字段名要与com.jokingus.model.User 这个类的属性彻底对应
若是不对应,那么能够在这个类的属性上增长注解代表:
@Table (name="users" )
public class User implements java.io.Serializable {
@Id
@Column (name="uid")
private String uid;
private String pwd;
@Column
private String firstName;
@Column
private String lastName;
<parameterMap class="com.jokingus.model.UserBean" id="fullParameterOfUser">
<parameter property="userName" jdbcType="VARCHAR" typeName="username"/>
<parameter property="password" jdbcType="VARCHAR" typeName="password"/>
<parameter property="email" jdbcType="VARCHAR" typeName="email"/>
<parameter property="score" jdbcType="INTEGER" typeName="score"/>
<parameter property="registerDate" jdbcType="Timestamp" typeName="registerdate"/>
</parameterMap>
<insert id="user_register" parameterMap="fullParameterOfUser">
insert into t_user(
username,password,email,score,registerdate
) values (
?,?,?,?,?
)
<selectKey resultClass="int" keyProperty="u_id" >
SELECT @@IDENTITY AS ID <!-- 返回插入的数据的主键值 -->
</selectKey>
</insert>
<!—删除操做 -->
<delete id="delete" parameterClass="User" >
<![CDATA[
delete from users where uid= #uid#
]]>
</delete>
<!—更新操做 -->
<update id="update" parameterClass="User" >
<![CDATA[
update users set pwd=#pwd#,firstname=#firstName#,lastname=#lastName# where uid=#uid#
]]>
</update>
iBATIS经常使用的操做函数:
sqlMapClient.queryForList() // 返回一个列表
sqlMapClient.queryForObject() // 返回的是单行记录,所以必定要保证SQL语句返回的结果最多一行记录
sqlMapClient.delete() //删除
sqlMapClient.insert() //插入
sqlMapClient.update() //更新
iBATIS 传递多个参数还能够经过map映射的方式,可是不推荐,映射过程会很影响效率
<settings useStatementNamespaces="true" cacheModelsEnabled="true" />
//设置是否是可使用命名空间
命名空间的做用是为了防止id相同时引用错误,若是SQL语句不少,能够放置在不一样的xml文件中,定义一个命名空间,如:namespace="User" ,只要在一个文件中不出现重复id,不一样文件间出现重复则不影响,咱们调用时则是经过命名空间+id 的方式调用。
首先在页面须要引入标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
须要的jar文件有:jstl.jar , standard.jar
普通的输出: ${info} ${user.name}
List循环 <c:forEach var="apply" items="${apply_list}">
判断:<c:if test="${sessionScope.userName!=null}">
对于session 的调用: ${sessionScope.userName}
在javascript中使用jstl:
var p_type="${product.p_type}";