十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
mybatis可以配置多個數(shù)據(jù)庫連接的,配置一個mysql 一個Oracle。用mysql的連接取出來,再用Oracle的連接存進去就好了,要注意一下字段的類型問題。
赫山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,赫山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為赫山上千提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的赫山做網(wǎng)站的公司定做!
簡單來說,沒有任何聯(lián)系。Java是編程語言,是用來操作數(shù)據(jù)的。數(shù)據(jù)庫是用來存取數(shù)據(jù)的。Java代碼通過JDBC(Java Data Base Connectivity :java數(shù)據(jù)庫連接)可以實現(xiàn)對數(shù)據(jù)庫的操作。在網(wǎng)上隨便搜搜JDBC就知道了,例如這個:
import?java.util.HashSet;
import?java.util.Set;
public?class?ShortSet?{
public?static?void?main(String[]?args)?{
SetShort?s?=?new?HashSetShort();
for?(Short?i?=?0;?i??100;?i++)?{
short?j?=?100;
s.add(j);
short?w?=?100;
w?=?(short)?(w?-?1?+?1);
s.remove(w);
}
System.out.println(s.size());
for?(Short?i?=?0;?i??100;?i++)?{
s.add(i);
//關(guān)鍵的問題在于這里?i-?1
//Type?mismatch:?cannot?convert?from?int?to?short
//下面這句話會報錯,為什么,因為i-1是int類型,不是short類型的,如果你像我上面做的進行強制類型轉(zhuǎn)化的話,看下面
// short?st?=?i?-?1;
s.remove(i?-?1);
}
System.out.println(s.size());
for?(Short?i?=?0;?i??100;?i++)?{
s.add(i);
//結(jié)果就是1,最后一個100沒有進行刪除操作
s.remove((short)(i?-?1));
}
System.out.println(s.size());
}
}
給你個我以前做的例子,不完整,僅供參考。
//*************************************
public ModelAndView add(HttpServletRequest req,
HttpServletResponse res) {
String username = (String) req.getSession().getAttribute("valid_user");
if (username != null) {
Integer bookid = Integer.parseInt(req.getParameter("bookid"));
Integer number = Integer.parseInt(req.getParameter("number"));
Integer userid = getUserDAO().findByName(username).getId();
this.shopcartDAO.addUserBook(userid, bookid, number);
Shopcart[] orders = this.getShopcartDAO().findUserBook(userid);
return new ModelAndView(this.getMemberPage(), "orders", orders);
} else {
return new ModelAndView(new RedirectView(getRedirectPage()));
}
}
//*******************************************************
public void addUserBook(Integer userid,Integer bookid,Integer number) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into shopcart(userid,bookid,number) "
+ "values(" + userid + "," + bookid + "," + number + ")";
Connection conn = null;
Statement stmt = null;
try
{
conn = dataSource.getConnection();
stmt = conn.createStatement();
stmt.execute(sql);
} catch(SQLException ex)
{
ex.printStackTrace();
}
finally
{
try{
stmt.close();
}
catch(SQLException e1)
{
e1.printStackTrace();
}
try{
conn.close();
}
catch(SQLException e2)
{
e2.printStackTrace();
}
}
}
java 讀excel 還是比較方便簡單的,原理就是,先用java 讀取excel,然后,一行行的寫入數(shù)據(jù)庫,字段的話,你自己程序里面寫就行了,給你個例子:
從Excel讀取數(shù)據(jù),生成新的Excel,以及修改Excel
package common.util;
import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;
import jxl.write.Number;
import jxl.write.Boolean;
import java.io.*;
/**
* Created by IntelliJ IDEA.
* User: xl
* Date: 2005-7-17
* Time: 9:33:22
* To change this template use File | Settings | File Templates.
*/
public class ExcelHandle
{
public ExcelHandle()
{
}
/**
* 讀取Excel
*
* @param filePath
*/
public static void readExcel(String filePath)
{
try
{
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
//Sheet st = rwb.getSheet("0")這里有兩種方法獲取sheet表,1為名字,而為下標,從0開始
Sheet st = rwb.getSheet("original");
Cell c00 = st.getCell(0,0);
//通用的獲取cell值的方式,返回字符串
String strc00 = c00.getContents();
//獲得cell具體類型值的方式
if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
//輸出
System.out.println(strc00);
//關(guān)閉
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 輸出Excel
*
* @param os
*/
public static void writeExcel(OutputStream os)
{
try
{
/**
* 只能通過API提供的工廠方法來創(chuàng)建Workbook,而不能使用WritableWorkbook的構(gòu)造函數(shù),
* 因為類WritableWorkbook的構(gòu)造函數(shù)為protected類型
* method(1)直接從目標文件中讀取WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));
* method(2)如下實例所示 將WritableWorkbook直接寫入到輸出流
*/
WritableWorkbook wwb = Workbook.createWorkbook(os);
//創(chuàng)建Excel工作表 指定名稱和位置
WritableSheet ws = wwb.createSheet("Test Sheet 1",0);
//**************往工作表中添加數(shù)據(jù)*****************
//1.添加Label對象
Label label = new Label(0,0,"this is a label test");
ws.addCell(label);
//添加帶有字型Formatting對象
WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
WritableCellFormat wcf = new WritableCellFormat(wf);
Label labelcf = new Label(1,0,"this is a label test",wcf);
ws.addCell(labelcf);
//添加帶有字體顏色的Formatting對象
WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC);
ws.addCell(labelCF);
//2.添加Number對象
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加帶有formatting的Number對象
NumberFormat nf = new NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
ws.addCell(labelNF);
//3.添加Boolean對象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.添加DateTime對象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
//添加帶有formatting的DateFormat對象
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
WritableCellFormat wcfDF = new WritableCellFormat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加圖片對象,jxl只支持png格式圖片
File image = new File("f:\\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);
ws.addImage(wimage);
//寫入工作表
wwb.write();
wwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 拷貝后,進行修改,其中file1為被copy對象,file2為修改后創(chuàng)建的對象
* 盡單元格原有的格式化修飾是不能去掉的,我們還是可以將新的單元格修飾加上去,
* 以使單元格的內(nèi)容以不同的形式表現(xiàn)
* @param file1
* @param file2
*/
public static void modifyExcel(File file1,File file2)
{
try
{
Workbook rwb = Workbook.getWorkbook(file1);
WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);//copy
WritableSheet ws = wwb.getSheet(0);
WritableCell wc = ws.getWritableCell(0,0);
//判斷單元格的類型,做出相應的轉(zhuǎn)換
if(wc.getType == CellType.LABEL)
{
Label label = (Label)wc;
label.setString("The value has been modified");
}
wwb.write();
wwb.close();
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//測試
public static void main(String[] args)
{
try
{
//讀Excel
ExcelHandle.readExcel("f:/testRead.xls");
//輸出Excel
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
OutputStream os = new FileOutputStream(fileWrite);
ExcelHandle.writeExcel(os);
//修改Excel
ExcelHandle.modifyExcel(new file(""),new File(""));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
2.在jsp中做相關(guān)測試,創(chuàng)建一個writeExcel.jsp
%
response.reset();//清除Buffer
response.setContentType("application/vnd.ms-excel");
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
new FileOutputStream(fileWrite);
ExcelHandle.writeExcel(new FileOutputStream(fileWrite));
%
在IE中瀏覽writeExcel.jsp就可以動態(tài)生成Excel文檔了,其中response.setContentType("application/vnd.ms- excel");語句必須要,才能確保不亂碼,在jsp中輸入%@page contentType="application/vnd.ms- excel;charset=GBK"%不行。
以上的代碼都不如哥的 且看哥是怎么寫條理清晰的代碼的?。。?/p>
package dbconnection //java 中不存在沒有包的類(講解詳細因為項目需要)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;//引入sql數(shù)據(jù)庫包
public class DBConnection{
private Connection conn=null;
private Statement stmt=null;
private Result rs=null;
private String jdbc="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String driverManager="jdbc:sqlserver://localhost:1433;databasename=HcitPos";
private String user="admin";
private int password="admin";
public DBConnection{
try{
Class.forName("jdbc");
conn.getConnection("driverManager");
}
catch(Exception e){}
}
public selectMethod(String sql){
stmt=conn.createStatement();
rs=stmt.extcuteQuery("sql");
while(rs.next()){
String title=rs.getString("title");//利用javaBean獲得數(shù)據(jù)庫中的屬性
String name=rs.getString("name");
.......
System.out.println("title");
System.out.println("name");
......
//當然數(shù)據(jù)庫的操作有很多 這里簡單介紹下功能的實現(xiàn)
}
}
public void closeDB(){
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
}
}