用Java代码操作数据库,可以用JDBC。首先要加载驱动,之后建立连接,再然后就可以对数据库进行操作。

1.建立连接。此处用的是MySQL数据库

 public class DBUtil {

     public static String URL = "jdbc:mysql://localhost:3306/JDBCDEmo";
public static String USER = "root";
public static String PASSWORD = "abc123_"; private static Connection conn; static{
try {
//或得去驱动
Class.forName("com.mysql.jdbc.Driver");
//得到数据库的连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static Connection getConnection(){
return conn;
} }

2. 建立连接以后,就可以用相应的方法就行CRUD了public class BoyDao {

public void addBoy(Boy by) {
      
//或得连接,编写sql语句,?号代表要插入额数据
Connection conn = DBUtil.getConnection();
String sql = "INSERT INTO Boy" + " (user_name, sex, age, birthday, email, mobile, create_user, "
+ "create_date, update_user, update_date, isdel)"
+ " values(?, ?, ?, ?, ?, ?, ?, current_date(), ?, current_date(), ?)";
try {
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理
关于是使用PrepareStatement还是普通的statement 请参考这里 http://www.cnblogs.com/0banana0/articles/2029863.html
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, by.getUser_name());
pst.setInt(2, by.getSex());
pst.setInt(3, by.getAge());
pst.setDate(4, new Date(by.getBirthday().getTime()));
pst.setString(5, by.getEmail());
pst.setString(6, by.getMobile());
pst.setString(7, by.getCreate_user());
pst.setString(8, by.getUpdate_user());
pst.setInt(9, by.getIsdel());
pst.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

//修改
public void updateBoy(Boy by){
Connection conn = DBUtil.getConnection();
String sql = "Update Boy set " + " user_name = ?, sex = ?, age = ?, birthday = ?, email = ?, mobile = ?, create_user = ?, "
+ "create_date = current_date(), update_user = ?, update_date = current_date(), isdel = ?"
+ " where id = ?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, by.getUser_name());
pst.setInt(2, by.getSex());
pst.setInt(3, by.getAge());
pst.setDate(4, new Date(by.getBirthday().getTime()));
pst.setString(5, by.getEmail());
pst.setString(6, by.getMobile());
pst.setString(7, by.getCreate_user());
pst.setString(8, by.getUpdate_user());
pst.setInt(9, by.getIsdel());
pst.setInt(10, by.getId());
pst.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void deleteBoy(Boy by) throws Exception{
Connection conn = DBUtil.getConnection();
String sql ="DELETE FROM Boy" + " where id = ?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, by.getId());
pst.execute();
} public List<Boy> queray() {
List<Boy> list = new ArrayList<>();
try {
Connection conn = DBUtil.getConnection();
Statement sm = conn.createStatement();
  
    //需要获得 结果操作集,之后就可以得到查询出来的结果 .next()是判断有没有结果,并把操作集的指针移到下一个操作集上。其实查询出来的结果可以看做是数据库中的一行一行的数据,那么刚开始的时候指针指向数据表的上一行,好比一个空的头指针,所以要移到下一个,以判断到底有没有数据。
ResultSet rs = sm.executeQuery("SELECT user_name FROM Boy");
while (rs.next()) {
String name = rs.getString("user_name");
Boy by = new Boy();
by.setUser_name(name);
list.add(by);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return list; }
}

数据库操作,jdbc的CRUD的更多相关文章

  1. 第20章 数据库操作----JDBC概述

    JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序设计接口),是连接数据库和Java应用程序的纽带. 1.JDBC-OD ...

  2. java 的数据库操作--JDBC

    一.java与数据库的交互 1.jdbc:java data base connectivity,java数据库连接.java的JDBC操作主要通过操作两个类进行连接操作:Connection 和 S ...

  3. db2 数据库操作JDBC .addBatch() 方法执行时,报错排查结果

    今天调试db2数据的存储时,jdbc使用addBatch方法时,抛出异常,异常信息如下: [jcc][1091][10404][3.62.56] 数据转换无效:参数实例  对于所请求的转换无效. ER ...

  4. java:数据库操作JDBC

    JDBC详解:https://www.cnblogs.com/erbing/p/5805727.html JDBC存储过程,事务管理,数据库连接池,jdbc的封装框架:https://www.cnbl ...

  5. jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

    day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一 ...

  6. 【JDBC】CRUD操作

    JDBC的CRUD操作 向数据库中保存记录 修改数据库中的记录 删除数据库中的记录 查询数据库中的记录 保存代码的实现 package demo1; import java.sql.Connectio ...

  7. [总结] JDBC数据库操作

    1.加载驱动--告诉驱动管理将使用哪一个数据库的驱动包. class.forName("com.mysql.jdbc.Driver"); 2.操作JDBC ADI完成数据库动作 D ...

  8. 使用JdbcTemplate简化JDBC操作 实现数据库操作

    使用Spring JDBC框架方遍简单的完成JDBC操作,满足性能的需求且灵活性高. Spring JDBC框架由4个部分组成,即core.datasource.object.support. org ...

  9. 【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作

    1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...

  10. JDBC数据库操作

    JDBC:   创建SQL语句对象    Statement statement = (Statement) con.createStatement() ;   调用执行     statement. ...

随机推荐

  1. Nhibernate mapping 文件编写

    生成工具软件 现在生成工具软件有很多了,例如商业软件:NMG.CodeSmith.Visual NHibernate,开源软件:MyGeneration.NHibernate Modeller.AjG ...

  2. [LeetCode] Word Search 词语搜索

    Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...

  3. [LeetCode] Minimum Path Sum 最小路径和

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  4. 单例模式中用volatile和synchronized来满足双重检查锁机制

    背景:我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的. 例子1 ...

  5. csv表格处理(下)--纯JS解析导入csv

    多日前的上篇介绍了csv表格,以及JS结合后端PHP解析表格填充表单的方法.其中csv转换成二维数组的时候逻辑比较复杂多坑,幸好PHP有丰富的库函数来处理,而现在用JS解析的话就没有那么幸运了,一切都 ...

  6. php杂项

    php5.3新增闭包函数用法use用法(引入变量地址且随内存中值变化而变化,跳过解析顺序直接获取函数最终值) $obj = (object) "Hello, everyone"; ...

  7. Less的使用

    Less为css预处理器 首先先去下载一个koala编译器软件,然后运行打开 新建一个项目目录,在css文件夹中新建一个后缀为less的文件,然后拉入koala软件中,然后运行 ,你的css文件夹中就 ...

  8. html&css复习题(参考答案)

    1. 常用的块属性标签及特征有哪些? 常用块标签:Div  h1~ h6  ol ul li  dl td dd  table tr th td  p  br  form 块标签特征:独占一行,换行显 ...

  9. bzoj4196

    4196: [Noi2015]软件包管理器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1376  Solved: 785[Submit][Stat ...

  10. 记一周cdqz训练

    #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.com/w ...