发表于: 2018-03-13 20:42:46

1 453


今天完成的事情:

跑通springJDBC,这次是通过maven新建而不是直接spring

package com;

import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper<Student>{
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student = new Student();
       student.setId(rs.getInt("id"));
       student.setName(rs.getString("name"));
       System.out.println(student);
       return student;
   }
}
package com;

import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;

public class StudentJDBCTemplate implements StudentDAO{
private DataSource dataSource;
   private JdbcTemplate jdbcTemplateObject;
   public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
       this.jdbcTemplateObject = new JdbcTemplate(dataSource);
   }
public void create(String name,Integer ID) {
String SQL = "insert into student (name,ID) values (?,?)";
       jdbcTemplateObject.update(SQL,name,ID);
       return;
   }

//    @Override
//    public Student getStudent(Integer ID) {
//        String SQL = "select * from student where id = ?";
//        Student student = jdbcTemplateObject.query(SQL,new Object[]{ID}, new StudentMapper());
//        return student;
//    }
   
   @Override
   public List<Student> listStudents() {
String SQL = "select * from student";
       List<Student> students = jdbcTemplateObject.query(SQL,new StudentMapper());
       return students;
   }

@Override
   public void delete(Integer ID) {
String SQL = "delete from student where ID = ?";
       jdbcTemplateObject.update(SQL,ID);
       System.out.println("Deleted Record with ID =" + ID);
       return;
   }

@Override
   public void update(Integer ID, String name) {
String SQL = "update student set name = ? where ID = ?";
       jdbcTemplateObject.update(SQL,name,ID);
       System.out.println("Updated Record with ID = "+ ID);
       return;
   }
}
package com;

import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.StudentJDBCTemplate;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
       StudentJDBCTemplate studentJDBCTemplate = (StudentJDBCTemplate)context.getBean("studentJDBCTemplate");
       System.out.println("Records Creation");
       studentJDBCTemplate.create("韩",12);
       List<Student> students = studentJDBCTemplate.listStudents();
       for (Student record:students) {
//            System.out.println("ID:" + student.getId());
           System.out.println(", Name : " + record.getName());
       }
System.out.println("update start");
//        studentJDBCTemplate.update(12,"韩大师");
       studentJDBCTemplate.delete(12);
   }
}
package com;
import java.util.List;
import javax.sql.DataSource;
/**
* @author: Arike
* @program: springJDBC
* @description: 访问对象接口文件
* @create: 2018/3/13 下午2:10
*/

public interface StudentDAO {
void setDataSource(DataSource ds);
   void create(String name, Integer ID);
   //    Student getStudent(Integer ID);
   List<Student> listStudents();
   void delete(Integer ID);
   void update(Integer ID,String name);
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   <!-- Initialization for data source -->
   <bean id="dataSource"
         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
       <property name="url" value="jdbc:mysql://localhost:3306/mydatabases"/>
       <property name="username" value="root"/>
       <property name="password" value="root"/>
   </bean>

   <!-- Definition for studentJDBCTemplate bean -->
   <bean id="studentJDBCTemplate"
         class="com.StudentJDBCTemplate">
       <property name="dataSource"  ref="dataSource" />
   </bean>

</beans>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>springJDBC</groupId>
   <artifactId>springJDBC</artifactId>
   <version>1.0-SNAPSHOT</version>
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                   <source>1.6</source>
                   <target>1.6</target>
               </configuration>
           </plugin>
       </plugins>
   </build>
   <dependencies>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>
       <dependency>
           <groupId>aopalliance</groupId>
           <artifactId>aopalliance</artifactId>
           <version>1.0</version>
       </dependency>
       <dependency>
           <groupId>org.aspectj</groupId>
           <artifactId>aspectjrt</artifactId>
           <version>1.7.1</version>
       </dependency>
       <dependency>
           <groupId>org.aspectj</groupId>
           <artifactId>aspectjweaver</artifactId>
           <version>1.7.1</version>
       </dependency>
       <dependency>
           <groupId>jstl</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
       <!-- 添加Spring的支持 -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-aop</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <!-- spring-core支持 -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-beans</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-core</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-expression</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
           <version>1.2</version>
       </dependency>

       <!-- spring-persistence支持 -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-orm</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-tx</artifactId>
           <version>4.2.4.RELEASE</version>
       </dependency>
       <!-- 数据库支持 -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.26</version>
       </dependency>

   </dependencies>

</project>

整合spring,mybatis

 

package com;

public class Student {
private int ID;
   private String create_at;
   private String update_at;
   private String name;
   private String dailyLink;
   private int QQ;
   private String onlineNumber;
   private String mail;
   private int phone;
   private String enrollmentTime;
   private String professionType;
   private String brotherName;
   private String promise;
   
   @Override
   public String toString() {
return "student{" +
"id=" + ID +
", name='" + name + '\'' +
'}';
   }

public Integer getId() {
return ID;
   }
public void setId(Integer ID) {
this.ID = ID;
   }

public String getName() {
return name;
   }
public void setName(String name) {
this.name = name;
   }

public String getCreate_at() {
return create_at;
   }
public void setCreate_at(String create_at) {
this.create_at = create_at;
   }

public String getUpdate_at() {
return update_at;
   }
public void setUpdate_at(String update_at) {
this.update_at = update_at;
   }

public String getDailyLink() {
return dailyLink;
   }
public void setDailyLink(String dailyLink) {
this.dailyLink = dailyLink;
   }

public String getOnlineNumber() {
return onlineNumber;
   }
public void setOnlineNumber(String onlineNumber) {
this.onlineNumber = onlineNumber;
   }

public String getEnrollmentTime() {
return enrollmentTime;
   }
public void setEnrollmentTime(String enrollmentTime) {
this.enrollmentTime = enrollmentTime;
   }

public String getProfessionType() {
return professionType;
   }
public void setProfessionType(String professionType) {
this.professionType = professionType;
   }

public String getMail() {
return mail;
   }
public void setMail(String mail) {
this.mail = mail;
   }

public String getBrotherName() {
return brotherName;
   }
public void setBrotherName(String brotherName) {
this.brotherName = brotherName;
   }

public String getPromise() {
return promise;
   }
public void setPromise(String promise) {
this.promise = promise;
   }

public int getQQ() {
return QQ;
   }
public void setQQ(int QQ) {
this.QQ = QQ;
   }

public int getPhone() {
return phone;
   }
public void setPhone(int phone) {
this.phone = phone;
   }
}
package com;

import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper<Student>{
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student = new Student();
       student.setId(rs.getInt("id"));
       student.setName(rs.getString("name"));
       System.out.println(student);
       return student;
   }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
      xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
   http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

   <!-- 加载配置文件 -->
   <context:property-placeholder location="classpath:db.properties" />
   <!-- 数据库连接池 -->
   <bean id="dataSource"
         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
       <property name="url" value="jdbc:mysql://localhost:3306/mydatabases"/>
       <property name="username" value="root"/>
       <property name="password" value="root"/>
   </bean>
   <!-- sqlSessonFactory的配置 -->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <!-- 配置数据库连接池 -->
       <property name="dataSource" ref="dataSource"></property>
       <!-- 加载配置文件 -->
       <property name="configLocation" value="classpath:SqlMapConfig.xml"></property>
   </bean>

   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
       <property name="basePackage" value="cn.test" />
   </bean>

</beans>
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mydatabases?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
<?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>

</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace是命名空间,作用sql语句的隔离,后面还有重要作用 #{}作用就是占位符,相当于jdbc的“?” parameterType:查询的参数类型
   resultType:查询结果的数据类型,如果给pojo应该给全路径。 -->
<!-- mapper代理的开发规则: 1、namespace必须时候接口的全限定名 2、Statementid必须和接口的方法名称一致 3、接口方法的参数类型要和parameterType要一致
   4、接口方法的返回值类型要和resultType一致 -->
<mapper namespace="com.StudentMapper">
   <!-- 别名不区分大小写 -->
   <select id="getUserById" parameterType="int" resultType="com.StudentMapper">
       SELECT * FROM student WHERE id=#{id};
</select>

   <!-- 如果查询结果返回list, resultType设置为list中一个元素的数据类型 ${}字符串拼接指令 -->
   <select id="getUserByName" parameterType="string"
           resultType="com.StudentMapper">
       SELECT * FROM student WHERE name LIKE '%${value}%'
</select>
   <!--  美丽的分界线 只测试最简单的上边两个方法  -->
   <!-- 参数为pojo时,#{}中的名称就是pojo的属性 -->
   <!-- <insert id="insertUser" parameterType="cn.test.mybatis.po.User">
       keyProperty:对于pojo的主键属性 resultType:对应主键的数据类型 order:是在insert语句执行之前或者之后。
           如果使用uuid做主键,应该先生成主键然后插入数据,此时应该使用Before
       <selectKey keyProperty="id" resultType="int" order="AFTER">
           SELECT LAST_INSERT_ID()
       </selectKey>
       INSERT into user (username,birthday,sex,address)
       values (#{username}, #{birthday}, #{sex}, #{address})
   </insert> -->

   <!-- <select id="getUserByQueryVo" parameterType="queryvo"
       resultType="user">
       SELECT * FROM `user` WHERE id=#{user.id};
   </select> -->

   <!-- 查询用户表中的记录数 -->
   <!-- <select id="getUserCount" resultType="int">
       SELECT count(*) FROM `user`
   </select>

   <sql id="find_user_list_where">
       <where>
           <if test="id!=null">
               and id=#{id}
           </if>
           <if test="username != null and username != ''">
               and username like '%${username}%'
           </if>
       </where>
   </sql>
   <sql id="user_field_list">
   id,username,birthday,sex,address
   </sql> -->
   <!--    <select id="findUserList" parameterType="user" resultType="user">
           select
           <include refid="user_field_list" />
           from user
           <include refid="find_user_list_where" />
       </select> -->
   <!-- 动态sql foreach测试 -->
   <!-- <select id="findUserByIds" parameterType="queryvo" resultType="user">
       SELECT
       <include refid="user_field_list" />
       FROM `user`
       <where>
           and id in(1,10,20,21,31)
           <foreach collection="ids" item="id" open="and id in(" close=")"
               separator=",">
               #{id}
           </foreach>

       </where>
   </select> -->
</mapper>


明天计划的事情:

整合完成spring,mybatis

 
遇到的问题:

springJDBC默认的 路径问题

收获:


返回列表 返回列表
评论

    分享到