数据库是为了实现必定目的按某种规则组织起来的“数据”的“集合”。常见的数据库管理软件有不少,咱们主要用的是MySQL。 MySql数据库简单操做:一. 启动与退出 1.启动MySQL Command Line Client(MySQL的控制台界面),直接输入安装时的密码便可。此时的提示符为:mysql>.2. 退出MySQL:quit或exit 库操做:显示全部数据库: show databases; 建立数据库: create database test; 删除数据库: drop database test;链接数据库: use test;查看当前链接的数据库: select database();当前数据库包含的表: show tables; 3、表操做2.删除表 drop table students; 3.插入数据 insert into students(stuno,name,gender,birthdate,major,age) values('201010001', 'zhangsan', 'm', '1992-10-01','cs',25);4. 查询表中的数据 select * from students;5. 删除表中数据删除students表中编号为1 的记录delete from students where id = 1; JDBC简介:咱们刚才是以命令行的方式来操做数据库?那么怎样使用java代码来操做数据库呢?可使用Java中的JDBC API.java.sql.DriverManager:加载驱动、创建链接做用:载入各类不一样的JDBC驱动 java.sql.Connection :数据库链接 java.sql.Statement :处理链接中的SQL语句 java.sql.ResultSet :处理结果集 JDBC编程通常步骤 1.与数据库创建链接(Connection) 2.向数据库发送SQL语句(statement) 3.得到和处理查询或更新语句返回的结果 注:使用查询语句可得到ResultSet 4.关闭链接,释放资源 通常来讲ResultSet、Statement、Connection使用完后要马上关闭
//201521123014 public class JDBCTest { /** * 使用JDBC链接并操做mysql数据库 */ public static void main(String[] args) { // 数据库驱动类名的字符串 String driver = "com.mysql.jdbc.Driver"; // 数据库链接串 String url = "jdbc:mysql://127.0.0.1:3306/jdbctest"; // 用户名 String username = "root"; // 密码 String password = "mysqladmin"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 一、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中) Class.forName(driver ); // 二、获取数据库链接 conn = DriverManager.getConnection(url, username, password); // 三、获取数据库操做对象 stmt = conn.createStatement(); // 四、定义操做的SQL语句 String sql = "select * from user where id = 100"; // 五、执行数据库操做 rs = stmt.executeQuery(sql); // 六、获取并操做结果集 while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } finally { // 七、关闭对象,回收数据库资源 if (rs != null) { //关闭结果集对象 try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { // 关闭数据库操做对象 try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { // 关闭数据库链接对象 try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } }
1)加载(注册)数据库驱动(到JVM)。 2)创建(获取)数据库链接。 3)建立(获取)数据库操做对象。 4)定义操做的SQL语句。 5)执行数据库操做。 6)获取并操做结果集。 7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操做对象-->关闭链接)。
public class BaseDao { // 初始化参数 private Connection con; private PreparedStatement pstmt; private ResultSet rs; public void update(String sql,Object[] paramsValue){ try { // 获取链接 con = JdbcUtil.getConnection(); // 建立执行命令的stmt对象 pstmt = con.prepareStatement(sql); // 参数元数据: 获得占位符参数的个数 int count = pstmt.getParameterMetaData().getParameterCount(); // 设置占位符参数的值 if (paramsValue != null && paramsValue.length > 0) { // 循环给参数赋值 for(int i=0;i<count;i++) { pstmt.setObject(i+1, paramsValue[i]); } } // 执行更新 pstmt.executeUpdate(); } catch (Exception e) { throw new RuntimeException(e); } finally { JdbcUtil.closeAll(con, pstmt, null); } } 编写实际操做的Dao类继承自BaseDao public class AdminDao extends BaseDao { // 删除 public void delete(int id) { String sql = "delete from admin where id=?"; Object[] paramsValue = {id}; super.update(sql, paramsValue); } // 插入 public void insert(Admin admin) { String sql = "insert into admin (userName,pwd) values (?,?)"; Object[] paramsValue = {admin.getUserName(),admin.getPwd()}; super.update(sql, paramsValue); } // 查询所有 public List<Admin> getAll(){ String sql = "select * from admin"; List<Admin> list = super.query(sql, null, Admin.class); return list; } // 根据条件查询(主键) public Admin findById(int id){ String sql = "select * from admin where id=?"; List<Admin> list = super.query(sql, new Object[]{id}, Admin.class); return (list!=null&&list.size()>0) ? list.get(0) : null; } }
DAO (Data Access Objects) 数据访问对象,这些对象用于访问修改数据库。这样作的好处是,数据库的修改只要修改DAO层的访问方式就能够了,不用整个项目都进行修改。隔离业务逻辑代码和数据访问代码,
隔离不一样数据库的实现。html
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 而后搜索并截图java
Model是模型,通常而言,会有人分的更细,VO,DTO等等。我并不推荐分的更细,这个Model经常和持久化的数据一一对应,如Mysql和MongoDB。
Model承载的做用就是数据的抽象,描述了一个数据的定义,Model的实例就是一组组的数据。整个系统均可以当作是数据的 流动,既然要流动,就必定是有流动的载体。
对于初学者而言,第一个要学会,就是建模,把业务逻辑映射成数据模型。mysql
Util是工具的意思,通常来讲,经常用来描述和业务逻辑没有关系的数据处理。Util通常要和私有方法对比:私有方法通常来讲是只是在特意场景下使用的,私有方法越多,代码结构越乱。常见的重构策略就是首先从一个越长行数的代码里抽象出若干个私有方法,而后再抽出公用的Util。若是有可能,尽量的少用私有方法,而是把他换成一个公用的Util,表明他和业务逻辑是不相关的。一般命名也是ArticleUtil,CommentUtil之类的。sql
Service比Util的概念大不少,它的重点是在于提供一个服务。这个服务可能包括一系列的数据处理,也有可能会调用多个Util,或者是调用别的服务。总归一句话,就是,有什么事情,你来找我。数据库
Dao通常而言,都是用来和底层数据库通讯,负责对数据库的增删改查编程
Controller控制中心,全部的指令,调度都从这里发出去。哪个Service作什么事儿,谁的数据提供给谁,通常而言,都是在Controller里实现的。安全
参考连接工具