`
20386053
  • 浏览: 433523 次
文章分类
社区版块
存档分类
最新评论

java 从零开始,学习笔记之基础入门<JDBC>(二十三)

 
阅读更多

JDBC

JDBC基本连接知识:

没有使用加工厂的链接

(没有使用加工厂的链接)

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class Conn {

public static void main(String[] args) {

// addUser("cw", "77777777777");

// selectAll();

//deleteUserById(5);

updateUserById(2,"神马","都是浮云");

}

public static void selectAll() {

Connection conn = null;

try {

// forName方法写上驱动类的完整路径

// 表示的是一个类加载器通过包名+类名来加载对应的类

// 类加载器会通过反射来加载字符串指定的类的实例

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

// 创建一个数据库连接

String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=sofeem";

conn = DriverManager.getConnection(url, "sa", "1234");

System.out.println(conn);

// 可以通过创建的conn去访问数据库建立了程序和数据库之间的连接

// 查询tb_user表中的所有信息

// 创建一个statement对象sql语句发送到数据库执行

Statement st = conn.createStatement();

String sql = "select * from tb_user";

// 执行查询返回执行之后的结果集创建结果集的对象来接收返回回来的多条数据

// 如果是查询操作,则调用executeQuery 方法

// 如果是增加、删除、修改操作则调用executeUpdate()方法

ResultSet rs = st.executeQuery(sql);

// 从结果集中取出对应的值

while (rs.next()) {

System.out.println("用户id:" + rs.getString("uid"));

System.out.println("用户姓名:" + rs.getString("uname"));

System.out.println(rs.getString("upass"));

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

// 往用户表中增加一条记录

public static void addUser(String name, String pass) {

Connection conn = null;

Statement st = null;

PreparedStatement ps = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433;databaseName=sofeem",

"sa", "1234");

ps = conn

.prepareStatement("insert into tb_user(uname,upass) values(?,?)");

// 给问好赋值

ps.setString(1, name);

ps.setString(2, pass);

// 执行

ps.executeUpdate();

// 增加完成就完了,没有结果集的返回

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

// 根据id进行删除一条记录

public static void deleteUserById(int id) {

Connection conn = null;

PreparedStatement ps = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433;databaseName=sofeem",

"sa", "1234");

// 创建sql语句预编译对象

String sql = "delete from tb_user where uid=?";

ps = conn.prepareStatement(sql);

// 给问好赋值

ps.setInt(1, id);

ps.executeUpdate();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

// 关闭数据库连接

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

// 根据uid来更新用户名和密码

public static void updateUserById(int id, String name, String pass) {

Connection conn = null;

PreparedStatement ps=null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(

"jdbc:sqlserver://192.168.0.179:1433;databaseName=sofeem",

"sa", "1234");

String sql="update tb_user set uname=?,upass=? where uid=?";

ps=conn.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, pass);

ps.setInt(3, id);

ps.executeUpdate();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

ps.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

// PreparedStatement Statement的区别?

/*

* 1 Pss 都是对sql语句到数据库中执行返回对应的数据,但是 Ps 有对sql语句进行预编译的过程,而s是直接执行

* 2 Ps执行sql语句的效率高于s执行sql语句的效率

* 如果在多次执行同一个操作的时候,那么Ps处理sql语句只需要编译一次,第二次处理sql语句就直接使用已经编译好的sql语句

* 如果使用的是s,则每次处理相同的操作的时候,每次都需要对sql语句进行编译再到数据库中执行

* 3 Ps的安全性高于s

* 正是因为Ps能够对sql语句进行预编译,所以它能够防止sql语句注入攻击,而s是直接执行sql语句,没有预编译过程

* 不能够防止sql注入

*

* */

}

使用加工厂的链接

(使用加工厂的链接)

package com.ibm.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class CopyOfConn {

public static void main(String[] args) {

// addUser("aaaa", "bbbbbbbbbb");

selectAll();

// deleteUserById(5);

// updateUserById(2,"神马","都是浮云");

}

public static void selectAll() {

Connection conn = null;

try {

conn=ConnFactory.getConn();

Statement st = conn.createStatement();

String sql = "select * from tb_user";

ResultSet rs = st.executeQuery(sql);

while (rs.next()) {

System.out.println("用户id:" + rs.getString("uid"));

System.out.println("用户姓名:" + rs.getString("uname"));

System.out.println(rs.getString("upass"));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

ConnFactory.closeConn(conn,null);

}

}

// 往用户表中增加一条记录

public static void addUser(String name, String pass) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn=ConnFactory.getConn();

ps = conn

.prepareStatement("insert into tb_user(uname,upass) values(?,?)");

// 给问好赋值

ps.setString(1, name);

ps.setString(2, pass);

// 执行

ps.executeUpdate();

// 增加完成就完了,没有结果集的返回

}catch (SQLException e) {

e.printStackTrace();

} finally {

ConnFactory.closeConn(conn, ps);

}

}

// 根据id进行删除一条记录

public static void deleteUserById(int id) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn=ConnFactory.getConn();

String sql = "delete from tb_user where uid=?";

ps = conn.prepareStatement(sql);

// 给问好赋值

ps.setInt(1, id);

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

} finally {

// 关闭数据库连接

ConnFactory.closeConn(conn, ps);

}

}

// 根据uid来更新用户名和密码

public static void updateUserById(int id, String name, String pass) {

Connection conn = null;

PreparedStatement ps=null;

try {

conn =ConnFactory.getConn();

String sql="update tb_user set uname=?,upass=? where uid=?";

ps=conn.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, pass);

ps.setInt(3, id);

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}finally{

ConnFactory.closeConn(conn, ps);

}

}

// PreparedStatement Statement的区别?

/*

* 1 Pss 都是对sql语句到数据库中执行返回对应的数据,但是 Ps 有对sql语句进行预编译的过程,而s是直接执行

* 2 Ps执行sql语句的效率高于s执行sql语句的效率

* 如果在多次执行同一个操作的时候,那么Ps处理sql语句只需要编译一次,第二次处理sql语句就直接使用已经编译好的sql语句

* 如果使用的是s,则每次处理相同的操作的时候,每次都需要对sql语句进行编译再到数据库中执行

* 3 Ps的安全性高于s

* 正是因为Ps能够对sql语句进行预编译,所以它能够防止sql语句注入攻击,而s是直接执行sql语句,没有预编译过程

* 不能够防止sql注入

*

* */

}

(加工厂)

package com.ibm.conn;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class ConnFactory {

static Connection conn;

private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=ibm";

private static final String USER="sa";

private static final String PASS="123";

static{

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public static Connection getConn(){

if(conn==null){

try {

conn=DriverManager.getConnection(URL,USER,PASS);

} catch (SQLException e) {

e.printStackTrace();

}

}

returnconn;

}

public static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs){

if(conn!=null){

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(ps!=null){

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

System.out.println(getConn());

}

}

DTO_DAO_实现增删改查

package com.ibm.conn;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class ConnFactory {

static Connection conn;

private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=ibm";

private static final String USER="sa";

private static final String PASS="123";

static{

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public static Connection getConn(){

if(conn==null){

try {

conn=DriverManager.getConnection(URL,USER,PASS);

} catch (SQLException e) {

e.printStackTrace();

}

}

returnconn;

}

public static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs){

if(conn!=null){

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(ps!=null){

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

System.out.println(getConn());

}

}

package com.ibm.dao;

import java.util.List;

import com.ibm.vo.PersonVO;

public interface PDAO {

//在此接口中声明增删改查的方法

public void addPerson(PersonVO pv);

public void delePerson(int pid);

public void updatePerson(PersonVO pv,int id);

public List<PersonVO> selectPerson();

//模糊查询

public List<PersonVO> selectLikePerson(String name);

//分页

public List<PersonVO> selectByFenYe(int pagenum,int pagesize);

}

package com.ibm.dao.impl;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import com.ibm.conn.ConnFactory;

import com.ibm.dao.PDAO;

import com.ibm.vo.PersonVO;

public class PersonDaoImpl implements PDAO{

Connection conn;//申明一个全局的链接数据库的属性

PreparedStatement ps;

ResultSet rs;

List<PersonVO> list;

@Override

public void addPerson(PersonVO pv) {

String sql="insert into tb_person(pname,ppass,pbirth)values(?,?,?)";

ps=getPs(sql);

try {

ps.setString(1, pv.getPname());

ps.setString(2, pv.getPpass());

ps.setString(3, pv.getPbirth());

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}finally{

ConnFactory.closeConn(conn, ps, null);

}

}

@Override

public void delePerson(int pid) {

String sql="delete from tb_person where pid=?";

ps=getPs(sql);

try {

ps.setInt(1, pid);

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}finally{

ConnFactory.closeConn(conn, ps, null);

}

}

@Override

public void updatePerson(PersonVO pv, int id) {

String sql="update tb_person set pname=?,ppass=? where pid=? ";

ps=getPs(sql);

try {

// PersonVO pv1= new PersonVO();

ps.setString(1, pv.getPname());

ps.setString(2, pv.getPpass());

ps.setInt(3, id);

ps.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}finally {

ConnFactory.closeConn(conn, ps, null);

}

}

@Override

public List<PersonVO> selectPerson() {

list = new ArrayList<PersonVO>();

String sql="select * from tb_person";

ps=getPs(sql);

try {

rs=ps.executeQuery();

while(rs.next()){

PersonVO pv= new PersonVO();

pv.setPid(rs.getInt("pid"));

pv.setPname(rs.getString("pname"));

pv.setPpass(rs.getString("ppass"));

pv.setPbirth(rs.getString("pbirth"));

list.add(pv);

}

} catch (SQLException e) {

e.printStackTrace();

}finally {

ConnFactory.closeConn(conn, ps, rs);

}

return list;

}

@Override

public List<PersonVO> selectLikePerson(String name) {

//创建集合对象来存放模糊查询到的结果值

list = new ArrayList<PersonVO>();

String sql="select * from tb_person where pname like '%"+name+"%'";

ps=getPs(sql);

try {

rs=ps.executeQuery();

while(rs.next()){

PersonVO pv=new PersonVO();

pv.setPid(rs.getInt("pid"));

pv.setPname(rs.getString("pname"));

pv.setPpass(rs.getString("ppass"));

pv.setPbirth(rs.getString("pbirth"));

list.add(pv);

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

ConnFactory.closeConn(conn, ps, rs);

}

return list;

}

public PreparedStatement getPs(String sql){

PreparedStatement ps1=null;

conn=ConnFactory.getConn();

try {

ps1=conn.prepareStatement(sql);

} catch (SQLException e) {

e.printStackTrace();

}

return ps1;

}

@Override

public List<PersonVO> selectByFenYe(int pagenum, int pagesize) {

//取到总的记录数

int totalCount=getAllCount();

//定义一个能够分的总的页数

int totalPage=0;

if(totalCount%pagesize==0){

totalPage=totalCount/pagesize;

}else{

totalPage=totalCount/pagesize+1;

}

if(pagenum<1){

pagenum=1;

}

if(pagenum>totalPage){

pagenum+=1;

}

int n=(pagenum-1)*pagesize;

list = new ArrayList<PersonVO>();

String sql="select top (?) * from tb_person where pid not in" +

"(select top (?) pid from tb_person order by pid)";

ps=getPs(sql);

try {

ps.setInt(1, pagesize);

ps.setInt(2, n);

rs=ps.executeQuery();

while(rs.next()){

PersonVO pv=new PersonVO();

pv.setPid(rs.getInt("pid"));

pv.setPname(rs.getString("pname"));

pv.setPpass(rs.getString("ppass"));

pv.setPbirth(rs.getString("pbirth"));

list.add(pv);

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

ConnFactory.closeConn(conn, ps, rs);

}

return list;

}

public int getAllCount(){

int count=0;

String sql="select count(*) from tb_person";

ps=getPs(sql);

try {

rs=ps.executeQuery();

while(rs.next()){

count=rs.getInt(1);

}

} catch (SQLException e) {

e.printStackTrace();

}

return count;

}

}

package com.ibm.test;

import java.util.List;

import com.ibm.dao.PDAO;

import com.ibm.dao.impl.PersonDaoImpl;

import com.ibm.vo.PersonVO;

public class Test {

public static void main(String[] args) {

//创建对象并赋值

PersonVO pv = new PersonVO();

pv.setPname("admin");

pv.setPpass("123");

pv.setPbirth("2012-2-14");

//调用增加的方法将创建的pv对象传递到增加方法中去

PDAO pdao = new PersonDaoImpl();

pdao.addPerson(pv);

//模糊查询

// List<PersonVO> l=pdao.selectLikePerson("a");

// for(PersonVO s:l){

// System.out.println(s.getPid()+s.getPname()+s.getPpass()+s.getPbirth());

// }

//删除记录

// pdao.delePerson(6);

//更新记录

// pv.setPname("yyyy");

// pv.setPpass("123");

// pdao.updatePerson(pv,5);

//查询所有记录

// List<PersonVO> ll= pdao.selectPerson();

// for(PersonVO s:ll){

// System.out.println("用户ID:"+s.getPid()+"\t\t用户名:"+s.getPname()+"\t\t密码:"+s.getPpass()+"\t\t出生日期:"+s.getPbirth());

// }

//

// List<PersonVO>ls = pdao.selectByFenYe(-3,2);

// for(PersonVO s:ls){

// System.out.println("用户ID:"+s.getPid()+"\t\t用户名:"+s.getPname()+"\t\t密码:"+s.getPpass()+"\t\t出生日期:"+s.getPbirth());

// }

//

}

}

package com.ibm.vo;

public class PersonVO {

privateintpid;

private String pname;

private String ppass;

private String pbirth;

public void setPid (int pid ){

this.pid = pid;

}

publicint getPid(){

return pid;

}

public String getPname() {

return pname;

}

public void setPname(String pname) {

this.pname = pname;

}

public String getPpass() {

returnppass;

}

public void setPpass(String ppass) {

this.ppass = ppass;

}

public String getPbirth() {

return pbirth;

}

public void setPbirth(String pbirth) {

this.pbirth = pbirth;

}

}

事务提交

package com.ibm.dao.impl;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import com.ibm.conn.ConnFactory;

public class TransactionDemo {

Connection conn;

PreparedStatement ps;

public PreparedStatement getPs(String sql){

conn=ConnFactory.getConn();

try {

ps=conn.prepareStatement(sql);

//把链接设置为不自动提交

conn.setAutoCommit(false);

} catch (SQLException e) {

e.printStackTrace();

}

return ps;

}

//对账户中的存款进行先取出400在存入800

public void show(int qq,int cq,int id) throws SQLException{

String sql="update tb_account set amoney=(amoney-?) where aid=?";

ps=getPs(sql);

ps.setFloat(1, qq);

ps.setInt(2, id);

ps.executeUpdate();

String sql2="update tb_account set amoney=(amoney+?) where aid=?";

ps=getPs(sql2);

ps.setFloat(1, cq);

ps.setInt(2,id);

ps.executeUpdate();

//执行两个操作的Ps对象是两个不同的对象

//手动提交事务

//只要两个ps操作有一个出现异常,那么事务回滚,事务全部失败

//事务要么全部成功,要么全部失败

conn.commit();//提交表示结束链接

// conn.setAutoCommit(true);

}

public static void main(String[] args) {

try {

new TransactionDemo().show(400, 800, 1);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

分享到:
评论

相关推荐

    Java 学习笔记-手机书 Rev.3 (080603)

    &lt;br&gt;&lt;br&gt;此为第三版Java Study Note Rev.3 (080603)&lt;br&gt;&lt;br&gt;1).增加了学习笔记下半部。&lt;br&gt;&lt;br&gt;在转换的过程中可能存在其他失误,请见谅,如果有好的见解请登陆我的博客:&lt;br&gt;&lt;br&gt;...

    jive.chm

    1 应用Struts的网站建设 &lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;Java基础&lt;br&gt; 1 20个Java基础Tips &lt;br&gt; 2 abstract,static,final修饰符 &lt;br&gt; 3 ChinaUnix.net Java精华贴 &lt;br&gt; 4 ANT学习笔记 &lt;br&gt; 5 极度性能调整 &lt;br&gt;&lt;br&gt; &lt;br&gt;FAQs&lt;br&gt;...

    Java JDK 6学习笔记(PPT)

    Java JDK 6学习笔记 配套简体PPT&lt;br&gt;包含热卖书籍《Java JDK 6学习笔记》的精华内容。&lt;br&gt;此课件在手,可以剩下买书的钱哦。&lt;br&gt;最新的JDK6的资料。一定要下来看看哦。&lt;br&gt;里面有21章PPT,内容充实,例子多。&lt;br&gt;...

    java学习笔记 从零开始的老师教程 jave笔记

    java学习笔记 从零开始的老师教程 jave笔记,喜欢学校jave的人

    Java 学习笔记-手机书 Rev.2 (080411)

    &lt;br&gt;&lt;br&gt;此为第二版Java Study Note Rev.2 (080411)&lt;br&gt;1).修改了部分名词在简体版种的名称:如:类别 -&gt; 类 ;列举 -&gt; 枚举 …&lt;br&gt;2).修改了部分在txt中无法显示的字符:如:主文件名前的星号在txt中无法正常...

    java文集

    正则表达式&lt;br&gt;lucene索引合并&lt;br&gt;探查Weblogic JDBC Multipool 问题 &lt;br&gt;struts通用Exception处理 &lt;br&gt;Grails中默认数据库HSQLDB点滴&lt;br&gt;从request获取各种路径总结&lt;br&gt;DIV实现的表格自动伸张与收缩&lt;br&gt;java 邮件...

    水木清华站∶Java版精华区 含jsp及js等集合.chm

    [目录]Java学习笔记(推荐) &lt;br&gt; 6. [目录]JDBC文档 &lt;br&gt; 7. [目录]RMI 文档 &lt;br&gt; 2. [目录]Java资源(文档-书籍-下载-注册码) &lt;br&gt; 1. [目录]License 和注册码 &lt;br&gt; 2. [目录]好书推荐 &lt;br&gt; 3. [目录]关于Java的...

    Java 学习笔记-手机书 Rev.1 (080408)

    此份所有内容皆出自我的偶像:林信良(良葛格)的Java 学习笔记,网址:&lt;br&gt;http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/JavaGossip.htm&lt;br&gt;本人只是将其整理成适合手机阅读的格式。&lt;br&gt;此为第一版Java ...

    MLDN框架笔记大全

    MLDN框架笔记大全&lt;br&gt;JSP+JDBC_假分页 &lt;br&gt;02 JSP+JDBC_真分页(基于MySQL数据库分页) &lt;br&gt;03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) &lt;br&gt;04 Struts入门 &lt;br&gt;05 使用Struts + DAO完成用户登陆 &lt;br&gt;06 Struts标签-...

    Java基础 学习笔记 Markdownr版

    Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式

    javascrip上百技术总集

    -(1)&lt;br&gt;事半功倍之Javascript--(2)&lt;br&gt;事半功倍之Javascript--(3)&lt;br&gt;事半功倍之Javascript--(4)&lt;br&gt;JavaScript教程--从入门到精通--(1)&lt;br&gt;JavaScript教程--从入门到精通--(2)&lt;br&gt;JavaScript教程--从入门到精通--...

    JDBC学习笔记--JDBC学习笔记

    JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记

    Java 学习笔记Java学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    软件工程师学习笔记大全(C++ JAVA)

    JAVA,C++软件工程师学习的笔记(多),包括:&lt;br&gt;C++.doc&lt;br&gt;Core Java笔记MS Word版.doc&lt;br&gt;CoreJavaNoteBook.doc&lt;br&gt;EJB笔记.doc&lt;br&gt;Hibernate.doc&lt;br&gt;JDBC.doc&lt;br&gt;JSP笔记.doc&lt;br&gt;Servlet.doc&lt;br&gt;Spring笔记.doc...

    Java相关课程系列笔记之九Servlet学习笔记

    java笔面试题1-6章 Java相关课程系列笔记之一Java学习...Java相关课程系列笔记之十三Struts2学习笔记 Java相关课程系列笔记之十四Hibernate学习笔记 Java相关课程系列笔记之十五Spring学习笔记 资源都已上传,自己下载

    java课堂笔记_自己总结的

    &lt;br&gt;主要内容:&lt;br&gt;1:基本sql语句,sqlserver和mysql的操作&lt;br&gt;2:java基础,从最基本的数据类型到数据结构,容器线程。&lt;br&gt;3:jsp实用代码,以及老师写的BaseDAO!反射机制,基本的rmi等&lt;br&gt;4:还有struts实用程序...

    Java从零基础到精通详细笔记高清完整PDF版

    本文档为详细笔记,doc格式,共173页。包含内容: Unix,Java 基础,数据库(Oracle jdbc Hibernate pl/sql),web,JSP,Struts,Ajax,Spring,Ejb,Java和模式。另附学习视频链接地址,欢迎下载。

    CNNA笔记

    思科CNNA中文读书笔记 &lt;br&gt;有以下内容&lt;br&gt;第一章:Internetworking &lt;br&gt;第二章:Internet Protocols&lt;br&gt;第三章:IP Subnetting and Variable Length Subnet Masks(VLSM)&lt;br&gt;第四章:Introduction to the Cisco IOS...

Global site tag (gtag.js) - Google Analytics