发表于: 2019-12-10 18:27:52

2 1393


今天完成的事情:

1.配置了一下pom.xml(不知道能用上哪个,看百度的教程配了这几个)

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-jdbc</artifactId>
   <version>5.2.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-beans</artifactId>
   <version>5.2.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</artifactId>
   <version>5.2.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-tx</artifactId>
   <version>5.2.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jdbc -->
<dependency>
   <groupId>org.apache.tomcat</groupId>
   <artifactId>tomcat-jdbc</artifactId>
   <version>9.0.29</version>
</dependency>

2.之前没用过idea,学习了下idea的使用。

3.以配置文件的形式配置数据库相关属性(根据网上教程配置JDBC程序)

1)db.properties文件
是java中采用数据库连接池技术完成应用对数据库的操作的配置文件信息的文件

jdbc.user=root
jdbc.password=19980710
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc\:mysql\://127.0.0.1\:3306/test?useUnicode\=true&characterEncoding\=UTF-8

2)JdbcUtils(这部的代码看不太懂,复制过来把错误调好了)

import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.apache.tomcat.jdbc.pool.DataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public final class JdbcUtils {
/**
    * 连接池类对象
    */
   private static DataSource dataSource;

   private JdbcUtils() {
}


// 注册驱动
   static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
           Properties prop = new Properties();
           InputStream is = JdbcUtils.class.getClassLoader()
.getResourceAsStream("db.properties");
           prop.load(is);
           dataSource = BasicDataSourceFactory.createDataSource(prop);
       } catch (Exception e) {
throw new ExceptionInInitializerError(e);
       }
}

/**
    * 建立连接
    *
    * @return
    * @throws SQLException
    */
   public static Connection getConnect() throws SQLException {
return dataSource.getConnection();
   }

/**
    * 释放资源
    *
    * @param rs
    * @param st
    * @param conn
    */
   public static void free(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close();
           }
} catch (SQLException e) {
e.printStackTrace();
       } finally {
try {
if (st != null) {
st.close();
               }
} catch (SQLException e) {
e.printStackTrace();
           } finally {
if (conn != null) {
try {
conn.close();
                   } catch (Exception e) {
e.printStackTrace();
                   }
}
}
}
}
}

3)JdbcTest(测试能不能读出数据库的数据)

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcTest {
public static void main(String[] args) throws SQLException {
template();
   }

static void template() throws SQLException {
Connection conn = null;
       Statement st = null;
       ResultSet rs = null;
       try {
// 建立连接
           conn = JdbcUtils.getConnect();
           // 创建语句
           st = conn.createStatement();
           // 执行语句
           rs = st.executeQuery("select * from user");
           while (rs.next()) {
System.out.println(rs.getObject(1)
+ "\t" + rs.getObject(2)
+ "\t" + rs.getObject(3));
           }
} finally {
// 释放资源
           JdbcUtils.free(rs, st, conn);
       }
}
}

最后还是报错了,改了好多次还是这样,有很多警告,还是不太会用idea,不知道每个文件该写在什么位置,估计是我文件位置写错地方了吧。明天继续修改吧。

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class JdbcUtils

at JdbcTest.template(JdbcTest.java:29)

at JdbcTest.main(JdbcTest.java:8)


明天计划的事情: 继续学习JdbcTemplate,复习Java基础,慢慢完整任务吧。


遇到的问题: 很多问题,不知道从哪开始入手,基础不扎实,直接想完成任务很吃力。

收获:

1.maven中dependency的属性(依赖)配置

groupId,artfactId,version,type,classifier,scope,systemPath,exclusions,optional 是 maven的9种依赖属性,

其中groupId,artfactId,version是三个基本的依赖坐标,不可缺少。

groupId------包名(一般为域名的反写)。

artfactId------项目名。

version-------版本。

了解到配了pom.xml之后,就不用自己导jar包了,maven会自动下载。


2.了解了一点JdbcTemplate提供的方法

JdbcTemplate主要提供下列方法:
  1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
  3、query方法及queryForXXX方法:用于执行查询相关语句;
  4、call方法:用于执行存储过程、函数相关语句。


3.在这个网址可以下载各种jar包

https://mvnrepository.com/artifact/org.springframework/spring-jdbc

可以直接复制maven中dependency的属性(依赖)配置很方便


4.com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的。


返回列表 返回列表
评论

    分享到